我对Sails和Grunt都是陌生的,所以我可能会错过显而易见的东西。
我试图在文件更改时自动在浏览器中刷新我的Sails应用程序。
我使用sails lift
启动应用程序,它在默认端口1337
上运行。
我尝试将options: {livereload:true}
添加到grunt-contrib-watch
配置中,但据我了解,我需要以某种方式将livereload JavaScript注入(inject)到我的页面中?
我尝试将grunt-contrib-connect
与livereload
选项一起使用以注入(inject)JavaScript,但它似乎只是启动了另一台服务器。当我导航到启动的服务器(localhost:8000
)时,我只看到文件夹结构。但是,注入(inject)了livereload JavaScript。
如果可能,我想避免使用livereload Chrome插件。
将livereload JavaScript注入(inject)我的Sails应用程序的最佳方法是什么?还是应该只使用其他工具,例如Browsersync?
谢谢! :)
最佳答案
module.exports = function(grunt) {
grunt.config.set('watch', {
api: {
// API files to watch:
files: ['api/**/*', '!**/node_modules/**']
},
assets: {
// Assets to watch:
files: ['assets/**/*', 'tasks/pipeline.js', '!**/node_modules/**'],
// When assets are changed:
tasks: ['syncAssets' , 'linkAssets']
},
// ADD THIS
options: {
livereload: true,
},
});
grunt.loadNpmTasks('grunt-contrib-watch');
};
</body>
标记之前的末尾,默认情况下为views/layout.ejs:<script src="http://localhost:35729/livereload.js"></script>
除本地主机外,您可以使用服务器的IP或DNS名称
如果api或 Assets 文件夹中的文件已更改,则将刷新页面。
默认情况下,Ggrunt-contrib-watch使用 35729 端口。您可以指向其他端口,例如
livereload: 8000
编辑:
好吧,我真的不知道这是否完全正确,但是看起来您可以覆盖
config/env/development.js
中的布局设置。添加类似的内容:module.exports = {
views: {
layout: 'dev'
}
}
然后,您可以创建单独的布局文件
views/dev.ejs
,在其中可以添加livereload脚本和其他开发参数。您也可以用相同的方式添加livereload
键。关于sails.js - 获取livereload以与Sails.js一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31071363/