【问题标题】:Livereload is no longer fully restarting serverLivereload 不再完全重启服务器
【发布时间】:2013-10-18 08:58:21
【问题描述】:

我目前正在使用 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
]);

【问题讨论】:

    标签: node.js gruntjs livereload


    【解决方案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']);
    

    【讨论】:

    • 不幸的是,我似乎被束缚在使用旧的 grunt-contrib-livereload gem 上,因为在使用 grunt-contrib-watch 时会抛出 livereload chrome 扩展。
    • 真正的问题不在于 livereload,而在于服务器没有在服务器文件更改时完全重新启动。
    【解决方案2】:

    变化

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

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

    不确定最近的什么变化导致了这个问题。根据 git 的说法,从项目开始就使用了以前的 sn-p。

    【讨论】:

      猜你喜欢
      • 2014-12-07
      • 2015-03-11
      • 1970-01-01
      • 2014-10-03
      • 1970-01-01
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      相关资源
      最近更新 更多