解决:
我构建了一个 gulp 插件来解决这个问题......
https://www.npmjs.com/package/gulp-mtime-correction
我遇到的问题是,我使用 Vinyl-FTP 和 Gulp-Newer 的 gulp 任务似乎没有注意到我的文件中的更改,因此没有通过 FTP 发送更改。
所以这里是 gulpfile.js 中的 FTP gulp 设置/任务
// FTP settings
const FTP = {
connOpts : {
host : 'ftp.****.co.uk',
user : '****',
password : '*****',
parallel : 10,
log : gutil.log
},
directoryPath : FTPDirectoryPath,
src : dir.build + '**/*',
base : dir.build
};
// ftp deployment to live site
gulp.task( 'deploy', () => {
var conn = ftp.create( FTP.connOpts );
return gulp.src( FTP.src , { …Run Code Online (Sandbox Code Playgroud) 我之前使用gulp改变了我的JS没有问题.但是现在我正在尝试使用gulp-changed和gulp-newer我的scss文件,而不检测哪个文件已更改.
var changed = require('gulp-changed');
var newer = require('gulp-newer');
var SRC = './stylesheets/**/*.scss';
var DEST = './stylesheets';
gulp.task('sass', function () {
return gulp.src(SRC)
.pipe(changed(DEST)) //tried newer here as well
.pipe(sass())
.pipe(gulp.dest(DEST))
});
Run Code Online (Sandbox Code Playgroud)
更改scss文件时,它将输出已更改但不更改任何文件 scss
[BS] Watching files...
[09:26:13] Starting 'sass'...
[09:26:14] Finished 'sass' after 180 ms
Run Code Online (Sandbox Code Playgroud)
看
gulp.task('watch', ['setWatch', 'browserSync'], function () {
gulp.watch('./stylesheets/**/*.scss', ['sass']);
});
Run Code Online (Sandbox Code Playgroud)
预期的输出文件存在,并且自昨天以来一直没有改变.
如何让scss只编译已更改的文件.