【问题标题】:Gulp is compiling every Js-fileGulp 正在编译每个 Js 文件
【发布时间】:2019-01-24 15:08:16
【问题描述】:

我的 gulp 有问题。
它工作正常而且速度非常快,但 Gulp 正在编译我项目中的所有 js 文件...

我的 gulp-watch:

gulp.task('watch', function () {
    gulp.watch(sassFilesWatch, ['styles']);
    gulp.watch(jsFilesWatch, ['uglify'])
});

我的数组:

var jsFilesWatch = [
    'clients/*/template/lib/jscripts/*.js',
    'clients/*/template/modules/**/*.js',
    'system/lib/jscripts/*.js',
    'system/mod/**/*.js',
    'clients/core/modules/**/*.js',
    '!/**/*.min.js'
];

这就是我的功能:

gulp.task('uglify', function(){
    pump([
        gulp.src(jsFilesWatch, {
            base: './'
        }),
        debug({
            title: 'Compiled',
            showFiles: false,
        }),
        uglify(),
        rename({ suffix: '.min' }),
        gulp.dest('./')
    ]);
});

这就是输出:
Output

应该只编译我保存的文件 我怎样才能做到这一点?

非常感谢

【问题讨论】:

    标签: javascript gulp gulp-watch gulp-uglify


    【解决方案1】:

    您的所有带有 .js 扩展名的文件似乎都是 被调试、丑化和缩小。 您要编译哪个保存的文件?

    **/*.js 使用 gulp 命令查看所有文件夹中所有扩展名为 .js 的文件。

    你可以使用 .pipe()

    var uglify = require('gulp-uglify'),
    concat = require('gulp-concat');
    
    gulp.task('js', function() {
    gulp.src('scripts/*.js')
    .pipe(uglify())
    .pipe(concat('script.js'))
    .pipe(gulp.dest('assets'))
    });
    

    【讨论】:

    • 好吧,我想编译我更改的文件。它不需要哪个文件。我想在与 .js 相同的目录中编译文件,而不是在资产文件夹或类似的东西中。我已经用管道试过了。同样的结果..
    • 从您提供的信息中很难说,但从您的回复中我了解到您更改的文件不会输出到相应的文件夹中。
    • 嗯,例如:我有一个“js”目录..在这个目录中是一个 main.js 和一个 test.js 当我编译 main.js 我不想在一个“资产”文件夹。它应该在“js”文件夹中编译/uglify 到 main.min.js 我希望这对你来说是可以理解的
    • 是的,我无法从您的原始问题中提取出来。试试gulp.dest('./js'); 你也可以查看 gulp-concat 将文件合并在一起npmjs.com/package/gulp-concat 如果这有帮助,请告诉我。
    【解决方案2】:

    看看这个插件,它会解决你的问题

    https://www.npmjs.com/package/gulp-changed

    尝试将您的任务更改为,

    gulp.task('uglify', function(){
        pump([
            gulp.src(jsFilesWatch, {
                base: './'
            }),
            changed('dist'),
            ngAnnotate(),
            debug({
                title: 'Compiled',
                showFiles: false,
            }),
            uglify(),
            rename({ suffix: '.min' }),
            gulp.dest('./')
        ]);
    });
    

    注意:这可能会在您运行任务后第一次运行所有 .js 文件,但它会在后续运行时识别更改的文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-30
      • 2018-06-21
      • 1970-01-01
      • 2014-07-04
      相关资源
      最近更新 更多