串联时的gulp问题和javascript错别字的uglify

时间:2015-05-07 18:52:41

标签: gulp

以下脚本运行正常,直到我发出一些javascript错误(如拼写错误或拼写错误然后保存),然后gulp最终出现控制台错误。

gulp.task("js", function() {
    var app = [
        "!js/api/*.*",
        "js/common/**/*.js",
        "js/modules/**/*.js"
    ];

    gulp.src(app)
        .pipe(concat("app.min.js")) //non-minified for debugging
        .pipe(gulp.dest("js"));

    gulp.src("js/app.min.js")
        .pipe(uglify()) //minify 
        .pipe(gulp.dest("build/js")); //save in build folder
});

问题发生在uglify级别,因为app.min.js有问题,所以当然uglify也会有问题,但后来我继续观察,我修复了我做的错别字并观看了跑步但是分手了试。

我的期望是app.min.js(非uglified)再次使用正确的代码进行编译,然后继续编译,uglify也应该正确运行,但这不是我所期待的。

要修复它,我手动去擦除非uglified app.min.js并再次运行gulp。

请提出解决方案。

我的观察声明。

gulp.task("watch", function() {
    gulp.watch("js/**/*.js", ["js"]);
});

我的默认任务运行器

gulp.task("default", ["watch"]);

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并使用gulp-plumber修复了它。

使用以下命令安装gulp-plumber:

npm install --save-dev gulp-plumber

然后将其导入您的gulp文件:

var plumber = require('gulp-plumber')

并在你的gulp任务中使用它。您的任务将如下所示:

gulp.task("js", function() {
var app = [
    "!js/api/*.*",
    "js/common/**/*.js",
    "js/modules/**/*.js"
];

gulp.src(app)
    .pipe(plumber())
    .pipe(concat("app.min.js")) //non-minified for debugging
    .pipe(gulp.dest("js"));
    .pipe(uglify()) //minify 
    .pipe(gulp.dest("build/js")); //save in build folder
});

注意 您不必两次执行gulp.src;因为gulp流已经为你处理了这个问题。

如果你想在你的应用程序中使用Gulp JS,可能会使用Sass css预处理器,优化你的图像,缩小CSS和javascript;那么也许你应该看看GitHub存储库skeletonSPA

此存储库中的gulp文件包含许多将为您完成所有工作的任务。它现在使用AngularJS,但你可以使用你想要的任何javascript库。

希望这能解决你的问题; - )

相关问题