0

我目前正在使用 Grunt 和 livereload,但由于某种原因,在服务器文件更改时,它不再重新启动完整的服务器。它正在监视服务器文件,Reload server/some_dir/some_file.js当文件更改时我会收到一条消息,但这似乎还不够。

watch: {
  jade: {
    files: [
      '<%= yeoman.server %>/**/*.jade',
      '<%= yeoman.app %>/**/*.jade'
    ],
    tasks: ['jade']
  },
  compass: {
    files: ['<%= yeoman.app %>/styles/{,*/}*.{scss,sass}'],
    tasks: ['compass']
  },
  livereload: {
    options: { livereload: true },
    files: [
      '{.tmp,<%= yeoman.server %>}/**/*.js',
      '{.tmp,<%= yeoman.app %>}/styles/{,*/}*.css',
      '{.tmp,<%= yeoman.app %>}/scripts/**/*.js',
      '{.tmp,<%= yeoman.app %>}/**/*.html',
      '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}'
    ],
    tasks: ['livereload']
  },
  server: {
    files:  [ './server/**/*' ],
    tasks:  [ 'express:dev', 'livereload-start' ]
  }
}

grunt.registerTask('server', [
  'clean:server',
  'jade',
  'compass:server',
  'express:dev',
  'livereload-start',
  'connect:livereload',  
  'watch'  // if I replace this with 'watch:server' the server does restart properly, but html/css updates are obviously gone
]);
4

2 回答 2

1

我不确定您正在使用这些软件包的哪个版本,但 livereload 本身不再(并且几个月没有)是一项任务。它现在应该作为 watch https://github.com/gruntjs/grunt-contrib-watch#optionslivereload的选项运行。

这是一个例子:

watch: {
    assets: {
        files: ['assets/**/*'],
        tasks: ['copy:assets']
    },
    scripts: {
        files: ['scripts/source/*.js'],
        options: {
            livereload: true
        }
    }
}

grunt.registerTask('default', ['watch']);
于 2013-10-18T14:11:38.117 回答
0

改变

server: {
  files:  [ './server/**/*' ],
  tasks:  [ 'express:dev', 'livereload-start' ]
}

server: {
  files:  [ './server/**/*' ],
  tasks:  [ 'express:dev', 'livereload' ]
}

不知道最近的变化是什么导致了这个问题。根据 git 的说法,自项目开始以来就使用了前一个片段。

于 2013-10-18T17:16:11.577 回答