让livereload与Sails.js一起工作

让livereload与Sails.js一起工作,sails.js,grunt-contrib-watch,livereload,browser-sync,grunt-contrib-connect,Sails.js,Grunt Contrib Watch,Livereload,Browser Sync,Grunt Contrib Connect,我对帆船和格伦特都是新手,所以我可能会错过一些显而易见的东西。 每当文件更改时,我将尝试在浏览器中自动刷新我的sails应用程序 我用sails lift启动应用程序,它在默认端口1337上运行 我尝试将选项:{livereload:true}添加到我的grunt contrib watch配置中,但据我所知,我需要以某种方式将livereload JavaScript注入我的页面 我尝试使用grunt contrib connect和livereload选项来注入JavaScript,但它似乎

我对帆船和格伦特都是新手,所以我可能会错过一些显而易见的东西。 每当文件更改时,我将尝试在浏览器中自动刷新我的sails应用程序

我用
sails lift
启动应用程序,它在默认端口
1337
上运行

我尝试将
选项:{livereload:true}
添加到我的
grunt contrib watch
配置中,但据我所知,我需要以某种方式将livereload JavaScript注入我的页面

我尝试使用
grunt contrib connect
livereload
选项来注入JavaScript,但它似乎只是启动了另一台服务器。当我导航到启动的服务器(
localhost:8000
)时,我只看到文件夹结构。然而,livereload JavaScript是注入的

如果可能的话,我想避免使用livereload Chrome插件

将livereload JavaScript注入我的Sails应用程序的最佳方式是什么?或者我应该使用另一个工具,比如Browsersync

谢谢!:)

  • 将livereload选项添加到tasks/config/watch.js
  • module.exports=函数(grunt){
    grunt.config.set('watch'{
    api:{
    //要查看的API文件:
    文件:['api/**','!**/node_modules/**']
    },
    资产:{
    //要监视的资产:
    文件:['assets/**'、'tasks/pipeline.js'、'!**/node_modules/**'],
    //当资产发生变化时:
    任务:['syncAssets','linkAssets']
    },
    //加上这个
    选项:{
    利弗雷罗德:没错,
    },
    });
    grunt.loadNpmTasks(“grunt-contrib-watch”);
    };
    
  • 将livereload脚本添加到布局中,默认情况下添加到views/layout.ejs,位于
    标记之前的末尾:
  • 
    
    除了localhost之外,您可以使用服务器的IP或DNS名称

    如果api或资产文件夹中的文件发生更改,则会刷新页面。

    默认情况下,Ggrunt contrib watch使用35729端口。您可以指向其他端口,如
    livereload:8000

    编辑: 嗯,我不知道这是否完全正确,但看起来您可以覆盖
    config/env/development.js
    中的布局设置。添加如下内容:

    module.exports={
    观点:{
    布局:“dev”
    }
    }
    

    然后您可以创建单独的布局文件
    views/dev.ejs
    ,您可以在其中添加livereload脚本和其他开发参数。您也可以用同样的方法添加
    livereload
    键。

    在尝试使用sails/grunt执行此操作花费了一些时间之后,我为.html、js和css安装了livereload浏览器插件(),为模型和控制器安装了包()


    非常有魅力。

    谢谢你的回答。您是否还建议如何动态注入脚本标记(而不仅仅是将其添加到布局)?因为我不想将其包括在生产模式中。@PhilippBaschke我在答案中添加了一些信息,没有测试您的建议是否有效!:)使用
    views/dev.ejs
    ,当I
    sails lift--prod
    时,livereload脚本不会显示。虽然我不喜欢重复布局,但我仍然觉得通过
    tasks/config/sails linker.js
    中的
    devJs
    可以实现。但它是有效的,所以非常感谢你!:)@PhilippBaschke我认为最好的选择是在layout.ejs中添加一个环境测试,如下所示:
    @codeKonami这很容易。非常感谢您的提示!:)