使用浏览器刷新的grunt

时间:2017-03-27 05:18:44

标签: node.js express gruntjs browser-refresh

每次我更改服务器文件时,我正在使用browser-refresh重新启动节点服务器。我想更进一步,每次我对HTML文件进行更改时都会刷新/重新加载浏览器。我正在为客户端使用把手,因此我的.hbs目录中有views个文件。我认为browser-refresh也应该能够刷新浏览器,但它对我不起作用。

对于grunt,我安装了以下任务:

grunt.loadNpmTasks('grunt-express-server');
grunt.loadNpmTasks('grunt-express');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-exec');
grunt.loadNpmTasks('grunt-open');
grunt.loadNpmTasks('grunt-express-runner');

我认为我不需要所有这些,但我想找到有用的东西。我可以使用grunt-exec重启我的服务器,但我已经有了browser-refresh的别名,所以我真的不需要。

我还应该注意,在我的app.js服务器文件中,我使用的是app.use('/', routes); var routes = require('./routes/index');。因此,当我的应用加载时(使用node app.js),它会直接转到http://localhost:3000/users/login

提前致谢。

1 个答案:

答案 0 :(得分:0)

使用grunt-contrib-watch并将Live reload选项设置为true,将启用实时重新加载和grunt自动重建。

例如,在你的gruntfile.js中:

watch: {
  css: {
    files: '**/*.sass',
    tasks: ['sass'],
    options: {
      livereload: true,
    },
  },
},

要重建您的网站,(使用grunt-contrib-watch插件),只需输入

即可

grunt watch

要根据更改自动重建您的网站,请查看以下grunt watch命令的示例用法:

gruntfile.js

module.exports = function (grunt) {

  grunt.initConfig({

    exec: {
      server: 'node server'
    },

    // Other JS tasks here
    // ...


    watch: {
      css: {
        files: ['scss/**/*.scss'],
        tasks: ['sass'],
        options: {
          spawn: false
        }
      },

      javascript: {
        files: ['js/*.js'],
        tasks: ['uglify']
      },

      options: {
        livereload: true,
      },

    },

  });

  grunt.registerTask('server', ['exec:server']);

  // Minify JS and create CSS files
  grunt.registerTask('build', ['uglify', 'sass']);

  // Do what you expect the default task to do
  grunt.registerTask('default', ['build', 'exec:server']);
};

此处有更多信息:https://github.com/gruntjs/grunt-contrib-watch/blob/master/docs/watch-examples.md#enabling-live-reload-in-your-html