我有一个奇怪的问题,我无法弄清楚gulp。
我有一个gulp-sass的任务。当我更改任何我的.scss文件时,我希望它重新编译我的sass文件。很简单。
这是我的代码
gulp.task('sass', function(){
gulp.src('app/styles/app.scss')
.pipe(sass({
includePaths: require('node-bourbon').includePaths
}))
.pipe(gulp.dest('app/assets'));
});
gulp.task('watch', function(){
gulp.watch('app/styles/**/*.scss', ['sass']);
});
问题是。当我运行gulp观察它一切正常。如果我编辑.scss文件,它会再次运行该任务。但是,更改并未反映在呈现的.css文件中。
曲线球如果我按ctrl + c来停止gulp.watch循环,那么更改会反映在渲染的.css文件中
我想知道导致这种情况发生的原因。
有什么想法吗?
答案 0 :(得分:2)
我遇到了这个问题,为我解决的问题是我在终端的错误目录中。一旦我cd到包含gulp文件的目录,一切都很好,并检测到更改。
答案 1 :(得分:2)
我使用PHPStorm遇到了这个问题。这是我的第一个gulpfile,我只是在试验虚拟的html,js和css,并查看IDE中生成的代码。我的代码在观看活动后从未更新过!
最后,我实际上在浏览器中加载了网站...
当您在浏览器中查看 文件时,会更新,但由于某种原因,它们不会被IDE编入索引。
答案 2 :(得分:1)
回调必须是函数,而不是任务名称数组。尝试:
gulp.task('watch', function(){
watch('js/*/.js', function() {
gulp.start('scripts');
});
});
您需要检查源目录,或者需要更新依赖项。见相关讨论
检查此主题:https://github.com/floatdrop/gulp-watch/issues/214#issuecomment-171282193