我对Gulp比较陌生。
我遇到的问题是:虽然Gulp确实在正确的位置创建了一个非常好的CSS文件,但它不会覆盖此文件,从而使我的watch
任务毫无用处。
这是我的images
任务:
gulp.task('styles', () => {
return gulp.src(`${SRC_ASSET_PATH}styles/app.scss`)
//some pipes
.pipe(rename({ extname: '.css' }))
.pipe(gulp.dest(DIST_ASSET_PATH));
});
还有watch
任务:
gulp.task('watch', () => {
// some other things
gulp.watch(`${SRC_ASSET_PATH}styles/**/*.scss`, gulp.series('styles'));
});
watch
任务似乎运行良好。当我对app.scss
文件进行更改时,控制台会显示style
任务正在运行(实际上,每次我进行更改时,它都会运行两次)。
我的/styles/
文件夹有几个子文件夹,其根目录中有app.scss
,并且在子文件夹中的所有文件上都使用了@import
。
现在出现问题:
正如我所说,如果删除dist
文件夹,运行gulp watch
并更改CSS,则会创建一个新的app.css
文件,并且一切正常。但是,如果我继续编辑,则什么都没有改变。
我尝试了各种方法来解决此问题(删除我的所有管道,生成.scss
文件而不是.css
,运行单独的任务以在进行任何更改之前删除css文件,等等。 )。
我怀疑是因为许可。
如果我查看app.css
的许可,它会显示-rw-rw-r--
。
如果我运行sudo chmod 777 app.css
并再次检查,则权限为-rwxrwxrwx
,但是有趣的是,一旦我更改CSS并再次运行watch
任务,它就会回到{ {1}}(实际上没有更改文件)。
我在此上花了三个小时,不知道下一步该怎么做。非常感谢您的帮助。 谢谢!