以下脚本运行正常,直到我发出一些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"]);
答案 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库。
希望这能解决你的问题; - )