我编写了一个脚本来连接和缩小项目中的一些java脚本文件。当我使用Visual Studio 2015和Power-shell运行它时,它在最后给出了一条错误消息。请参阅随附的屏幕截图以获取脚本和错误消息。
根据错误信息,我的想法是; 该脚本也尝试连接/缩小node.js文件,因为该错误与node.js文件有关,但是由于我没有在“Layout.cshtml”中包含对Node.js的任何引用而无法发生这种情况。
有人请解释我所犯的错误。
/// <vs />
// include plug-ins
'use strict';
var gulp = require('gulp');
var concat = require('gulp-concat');
var htmlbuild = require('gulp-htmlbuild');
var plugins = require('gulp-load-plugins')();
var es = require('event-stream');
var clean = require('gulp-clean');
var uglify = require('gulp-uglify');
var ignore = require('gulp-ignore');
// pipe a glob stream into this and receive a gulp file stream
var gulpSrc = function (opts) {
var paths = es.through();
var files = es.through();
paths.pipe(es.writeArray(function (err, srcs) {
var fixedFiles = [];
for (var i = 0; i < srcs.length; i++) {
fixedFiles[i] = srcs[i].replace("~", ".");
console.log(fixedFiles[i]);
}
gulp.src(fixedFiles, opts).pipe(files);
}));
return es.duplex(paths, files);
};
var jsBuild = es.pipeline(
plugins.concat('all.js'),
gulp.dest('./Scripts/')
);
gulp.task('clean', function () {
return gulp.src('./Scripts/all.js')
.pipe(clean({ force: true }));
});
gulp.task('build', function () {
return gulp.src(['./Views/Home/Layout.cshtml'])
.pipe(htmlbuild({
js: htmlbuild.preprocess.js(function (block) {
block.pipe(gulpSrc())
.pipe(jsBuild);
})
}));
process.stdout.write('build is done');
});
gulp.task('minify', function () {
return gulp.src(['./Scripts/all.js']).
pipe(uglify()).
pipe(gulp.dest('./testing'));
});
gulp.task('default', ['clean', 'build', 'minify'], function () { });
&#13;
答案 0 :(得分:1)
minify
任务中Uglify引发此错误。它告诉你,它正在运行的JavaScript代码无法正确解析。换句话说,文件Scripts/all.js
中有SyntaxError。
遗憾的是,Uglify为此提供了如此低质量的错误。我建议你把这个文件运到像ESLint这样的linter中。它会很好地向您展示文件中SyntaxError
的确切位置。这是工具链中的一个重要步骤,应该尽早完成(在模块级别,而不是在构建的代码上)。