用Yeoman禁用LiveReload

时间:2012-10-10 23:46:59

标签: yeoman livereload

在IE8中进行测试时,由于不支持Web套接字,LiveReload会抛出错误。有没有办法配置yeoman禁用LiveReload?

5 个答案:

答案 0 :(得分:4)

Yeoman不支持IE8,理由充分。

但是,您可以执行Allan描述的操作,或者您可以通过将其放在Gruntfile中来覆盖server任务:

grunt.registerTask('server', 'yeoman-server');

答案 1 :(得分:4)

尝试使用<!--[if !IE]><!--></body><!--<![endif]--><!--[if IE]></body><!--<![endif]-->代替</body>

生成器会尝试替换第一个</body>元素并在其之前添加livereload代码段,因此代码将被放置在IE空间中不可见。

P.S。它很脏,所以要谨慎使用

答案 2 :(得分:3)

将它放在你的Gruntfile中:

grunt.registerHelper('reload:inject', function () {
  return function inject(req, res, next) {
      return next();
  }});

答案 3 :(得分:1)

是的,我知道。

  1. 转到项目文件夹,找到文件Gruntfile.js
  2. 在编辑器中打开文件
  3. 删除reload:
  4. 中的watch:

    看起来像这样:

    // default watch configuration
    watch: {
      coffee: {
        files: 'app/scripts/**/*.coffee',
        tasks: 'coffee reload'
      },
      compass: {
        files: [
          'app/styles/**/*.{scss,sass}'
        ],
        tasks: 'compass reload'
      },
      reload: {
        files: [
          'app/*.html',
          'app/styles/**/*.css',
          'app/scripts/**/*.js',
          'app/images/**/*'
        ],
        tasks: 'reload'
      }
    }
    

    在你删除它之后:

    // default watch configuration
    watch: {
      coffee: {
        files: 'app/scripts/**/*.coffee',
        tasks: 'coffee reload'
      },
      compass: {
        files: [
          'app/styles/**/*.{scss,sass}'
        ],
        tasks: 'compass reload'
      }
    }
    

    我想我已经看到了一个命令行标志,但我无法找到它。

答案 4 :(得分:0)

Yeoman Livereload由两部分组成:插入livereload片段的中间件,以及watch任务中的livereload目标。要禁用livereload,请同时删除:

Gruntfile顶部的Livereload代码段

// Generated on ...
'use strict';
var LIVERELOAD_PORT = 35729; // <- Delete this
var lrSnippet = require('connect-livereload')({port: LIVERELOAD_PORT}); // <- Delete this
var mountFolder = function (connect, dir) {
  return connect.static(require('path').resolve(dir));
};

Watch中的Livereload任务:

watch: {
  // Delete this target 
  livereload: {
    options: {
      livereload: LIVERELOAD_PORT
    },
    files: [
       //...
    ]
  }
}

插入代码段的中间件:

connect: {
  options: {
    port: 9000,
    hostname: 'localhost'
  },
  livereload: {
    options: {
      middleware: function (connect) {
        return [
          lrSnippet, // <- Delete this middleware
          mountFolder(connect, '.tmp'),
          mountFolder(connect, yeomanConfig.app)
        ];
      }
    }

有关修复Yeoman中的livereload-connect问题的更新,请跟踪此问题:https://github.com/yeoman/generator-webapp/issues/63