使用 Gulp newer 的 Gulp Vinyl FTP 没有注意到文件的变化,因此没有部署更新:时区问题

Mat*_*lls 5 ftp wordpress gulp gulp-newer vinyl-ftp

解决:

我构建了一个 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 , { base: FTP.base, buffer: false } )
        .pipe( conn.newer( FTP.directoryPath ) ) // only upload newer files 
        .pipe( conn.dest( FTP.directoryPath ) );
} );
Run Code Online (Sandbox Code Playgroud)

由于我正在编写 wordpress 主题,因此 FTPDirectoryPath 指向“ etc /wp-content/themes/themename”目录。我很确定它设置正确,因为它确实正确更新了全新的文件

我不知道这是 Vinyl-FTP 还是 Gulp-Newer 的问题,但出于某种原因,此 FTP 任务没有注意到 main.css 已更新。

请帮忙!!

更新:

所以我发现这是一个时区问题。服务器在英国,但我在巴拿马(晚了 6 小时),所以服务器上的文件总是比 gulp-newer 更新(比较上次编辑时间),除非我没有更新它们6个小时。

有没有人知道无需更改笔记本电脑上的时钟的解决方法?我可以在本地或服务器上手动更新文件的时间戳吗,或者是否有可以处理这个问题的 gulp 扩展?

谢谢!

Mat*_*lls 1

我制作了这个 npm 包作为解决方案。那是 2 年前的事了,所以如果你们有任何问题,请告诉我,或者随时制作 PR :)

您可以使用它来简单地在您使用的“文件是否是新的”检查之前和之后调整文件的 mtime(上次修改时间),使您看起来处于不同的时区。

https://www.npmjs.com/package/gulp-mtime- Correction