6

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

4

5 回答 5

4

Yeoman 不支持 IE8,这是有充分理由的。

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

grunt.registerTask('server', 'yeoman-server');
于 2012-11-08T15:20:02.813 回答
4

尝试使用<!--[if !IE]><!--></body><!--<![endif]--><!--[if IE]></body><!--<![endif]-->而不是</body>.

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

PS这是肮脏的黑客,所以小心使用

于 2014-01-31T12:07:30.530 回答
3

把它放在你的 Gruntfile 中:

grunt.registerHelper('reload:inject', function () {
  return function inject(req, res, next) {
      return next();
  }});
于 2012-12-30T00:01:16.660 回答
1

是的,我知道有一个。

  1. 转到您的项目文件夹并找到该文件Gruntfile.js
  2. 在编辑器中打开文件
  3. 删除reload: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'
  }
}

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

于 2012-10-24T14:00:48.157 回答
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

于 2013-06-01T04:19:20.077 回答