代码之家  ›  专栏  ›  技术社区  ›  MeltingDog

如何让Gulp识别编译文件中的更改/更新?

  •  1
  • MeltingDog  · 技术社区  · 6 年前

    我正在建立一些站点,并使用Gulp将它们的.scss文件编译成 main.css 文件。

    一切都很好,但有一件事-咕噜似乎不知道什么时候 主.css 文件已更新。

    例如,如果我运行 gulp sass 主.css 文件,然后运行我的FTP部署脚本, gulp ftp-deploy 主.css 文件。

    只有当 如果我在IDE中打开它,做一些修改,比如添加一个空间或其他东西,然后保存。

    当我运行Shopify ThemeKit时,上面的问题也会发生 theme watch 指挥也是。

    有人知道我怎么做才能检测到变化吗?

    我的gulpfile.js是这样的:

    const gulp = require('gulp');
    const sass = require('gulp-sass'); //Compiles SASS
    const ftp = require( 'vinyl-ftp' ); //FTP
    
    gulp.task('sass', function(){
      return gulp.src('scss/main.scss')
        .pipe(sass())
        .pipe(gulp.dest('css'))
    });
    
    gulp.task('ftp-deploy', function() {
    
      var conn = ftp.create({
        // CONFIG
      });
    
      var localFilesGlob = ['css/**']; 
    
      return gulp.src(localFilesGlob, { base: '.', buffer: false })
        .pipe( conn.newer( '.' ) )
        .pipe( conn.dest( '.' ) )
      ;
    
    });
    

    node.js版本是11.6.0

    npm版本是6.5.0

    Gulp版本是4.0.0(2.0.1 CLI)

    我在MacOS 10.14.2上

    1 回复  |  直到 6 年前
        1
  •  0
  •   Elliot Nelson    6 年前

    啊,我本来以为你在说 gulp watch newer 在你的 ftp-deploy .

    这听起来像是修改时间比较问题。这通常是由于 时差 在本地计算机和服务器之间(其中一台或另一台可能会关闭几分钟,从而导致任务中出现不稳定行为)。另一种可能是服务器位于不同的时区,使用本地时间而不是UTC。S.O.问题的答案 Gulp Vinyl FTP Timezone Issue 可能对你有帮助。

    /css 和跑步 gulp sass 重新生成它们;重要的是修改时间(运行 ls -l css 咕噜咕噜 不更改SCSS文件 不会更新中的文件 /css