我希望我的gulpfile.js能够在我的角度连接文件中进行ng-annotate运行之前进行比较,之后我可以看到它所做的注入。我无法理解语法。我不断得到错误的不同版本,说gulp无法统计我的文件。
我坚持的代码如下。我很乐意一次性完成,但也没有成功。
gulp.task('scripts', function () {
gulp.src(['public/app/**/*.js'])
.pipe(concat('main-noanotate.js'))
.pipe(rename({suffix: '.noannotate.js'}))
.pipe(gulp.dest('public/dist'));
return gulp.src(['public/app/**/*.js'])
.pipe(concat('main.js'))
.pipe(ngAnnotate())
.pipe(diff('main.noannotate.js'))
.pipe(diff.reporter({ fail: true }))
.pipe(gulp.dest('public/dist'))
});
答案 0 :(得分:4)
gulp-diff
正试图对原始源文件进行区分,但是当您正在处理多个文件串联的结果时,磁盘上没有原始源文件。我建议拆分你的gulp任务并写入临时的.build
目录。
以下是清除构建工作区的示例。
要进行设置,请创建一个新目录并运行:
npm install del gulp gulp-concat gulp-diff gulp-header; mkdir -p src; echo "foo" > src/foo.txt; echo "bar" > src/bar.txt
然后创建这个gulpfile.js:
'use strict';
var gulp = require('gulp');
var diff = require('gulp-diff');
var header = require('gulp-header');
var concat = require('gulp-concat');
var del = require('del');
gulp.task('default', ['clean']);
gulp.task('clean', ['build'], function(cb) {
del(['.build'], cb);
});
gulp.task('build', ['concat'], function() {
return gulp.src('.build/all.txt')
.pipe(header('//stream test\n'))
.pipe(diff())
.pipe(diff.reporter())
.pipe(gulp.dest('./dist'));
});
gulp.task('concat', function() {
return gulp.src('src/*.txt')
.pipe(concat('all.txt'))
.pipe(gulp.dest('.build'));
});
然后尝试运行gulp
。它应该连接文件并将输出放入临时.build
目录。然后该文件用于区分。在上面的示例中,header
正在执行修改文件的工作(这可能是您应用ngAnnotate
的地方)。