5

解决:

我构建了一个 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 ) );
} );

因为我正在写一个 wordpress 主题,所以 FTPDirectoryPath 指向 ' etc /wp-content/themes/themename' 目录。我很确定它设置正确,因为它确实正确更新了全新的文件

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

请帮忙!!

更新:

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

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

谢谢!

4

1 回答 1

1

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

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

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

于 2019-07-30T02:35:40.140 回答