在IE8中进行测试时,由于不支持Web套接字,LiveReload会抛出错误。有没有办法配置yeoman禁用LiveReload?
答案 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)
是的,我知道。
Gruntfile.js
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'
}
}
我想我已经看到了一个命令行标志,但我无法找到它。
答案 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