我的livereload是“正常工作”,因为它会在文件更改时重新加载页面,但前提是我直接修改文件。如果文件是通过grunt stylus或jade编译器生成的,则没有任何反应。
当我查看打开详细信息的咕噜声时,只有在我直接保存Live reloading root.css...
时才会显示root.css
行。如果通过手写笔编译器修改root.css
,则不会显示该行。就好像watch没有检测到文件已被更改(如果它已通过编译器更改)。同样的问题也出现在玉器上。
这是我的手写笔任务(修剪过):
stylus: {
options: {
compress: false,
use: [
require('autoprefixer-stylus')
]
},
src: [
'app/styl/**/*.styl'
],
dest: 'build/css/root.css'
}
这是我的观察任务(修剪过):
livereload: {
options: {
livereload: 1337,
},
files: 'build/**/*'
},
stylus: {
files: [
'app/styl/**/*.styl',
],
tasks: ['stylus:dev']
},
我真的希望我只是做一些愚蠢的事情。我找不到与此类似的任何问题。
修改
为了防止这种情况发生,我发现通过将我的繁琐任务从运行['clean','jade:dev', 'stylus:dev', 'connect:dev', 'watch']
更改为仅运行['connect:dev', 'watch']
,livereload按预期工作一次,然后再也不会。 (直接修改css仍然有效。)
编辑2: 我能够通过向watch中的每个特定任务添加livereload来解决这个问题,如下所示:
livereload: {
options: {
livereload: 1337,
},
files: 'build/**/*'
},
stylus: {
files: [
'app/styl/**/*.styl',
],
tasks: ['stylus:dev'],
options: {
livereload: 1337
}
},
至于为什么会这样,我不知道。如果有人能够对此有所了解,我们将不胜感激。虽然说实话,我不知道为什么我没有早点尝试过。