【问题标题】:Script Concat / Minify Task Keeps Running脚本 Concat / Minify 任务继续运行
【发布时间】:2017-12-16 05:43:42
【问题描述】:

所以我有这样的任务:

gulp.task('scripts', function() {
    return gulp.src(['app/scripts/app.js', 'app/scripts/controllers/**/*.js', 'app/scripts/services/**/*.js', 'app/scripts/directives/**/*.js', 'app/scripts/libs/**/*.js' ])
        .pipe(concat('external.min.js'))
        .pipe(ngAnnotate())
        .pipe(uglify())
        .pipe(gulp.dest('app/scripts'))
        .pipe(gulp.dest('dist/scripts'))
});

我有一个监视任务:

gulp.task('watch', ['sass-dev', 'scripts'], function() {
    gulp.watch('app/style/sass/**/*.scss', ['sass-dev']);
    gulp.watch('app/scripts/**/*.js', ['scripts']);
});

一切正常,除了每当我保存一个 JS 文件时,“脚本”会运行多次。我假设问题出在 gulp.src 并且它查看多个文件,但我不确定。

这没什么大不了的(对我来说),但有时我会切换到命令行并且任务无限运行。它只是一遍又一遍地被调用。

如果你还没有猜到,我正在运行 Angular,这就是为什么 app.js 是第一个,而我有 ngAnnotate。

有人能解释为什么脚本有时会连续运行吗?

【问题讨论】:

    标签: gulp


    【解决方案1】:

    我猜问题是.pipe(gulp.dest('app/scripts'))。你正在用你的脚本做一些东西(丑化和角度的东西),然后你把它们放在你正在观看的同一个文件夹中。所以scripts 任务会一次又一次地启动。

    您应该删除此行,只将您的分发脚本放在您的分发文件夹中,并保持您的应用程序文件不变。

    【讨论】:

    • 完全忽略了这一点。这也太简单了!哈哈。谢谢。这解决了我的问题。
    猜你喜欢
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多