2

我试图让 Grunt 重新加载我的 js 文件,当我使用grunt-contrib-watch. 这是我的Gruntfile

module.exports = function(grunt) {

  require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);

  grunt.initConfig({

     connect: {
      all: {
        options:{
          port: 9000,
          hostname: "0.0.0.0",
          base: 'app',
          keepalive: true,
          middleware: function(connect, options) {

            return [

              require('grunt-contrib-livereload/lib/utils').livereloadSnippet,

              connect.static(options.base)
            ];
          }
        }
      }
    },
    open: {
      all: {
        path: 'http://localhost:<%= connect.all.options.port%>'
      }
    },
    watch: {
      options: {
        livereload: true
      },
      js: {
        files: ['app/js/**/*.js'],
        tasks: ['jshint'],
      }
    }
  });

  // Creates the `server` task
  grunt.registerTask('server',[
    'open',
    'livereload-start',
    'connect',
    'watch'
  ]);
};

当我更改 js 文件时,没有任何反应。任何帮助都会很棒。

4

1 回答 1

5

我之前没有尝试过livereloadSnippet在中间件中使用,所以我不确定那里可能有什么问题。但是如果你只是想要一个常规的 LiveReload 设置,你可以使用插件livereload提供的选项:grunt-contrib-connect

require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);

grunt.initConfig({
  connect: {
    all: {
      options:{
        port: 9000,
        hostname: '0.0.0.0',
        base: 'app',
        keepalive: true,
        livereload: true,
        open: true
      }
    }
  },
  watch: {
    options: {
      livereload: true
    },
    js: {
      files: ['app/js/**/*.js'],
      tasks: ['jshint']
    }
  }
});

grunt.registerTask('server',[
  'connect',
  'watch'
]);
于 2013-11-03T09:14:04.530 回答