4

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);where var routes = require('./routes/index');。因此,当我的应用程序加载(使用node app.js)时,它直接转到http://localhost:3000/users/login

提前致谢。

4

1 回答 1

4

使用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

于 2017-03-27T17:58:24.363 回答