1

我想缩小我的大角度项目。

使用角度 1.5.0。

我正在尝试使用模块 gulp-ng-annotate 来做到这一点。

var gulp = require('gulp');
var ngAnnotate = require('gulp-ng-annotate');

gulp.task('default', function () {
return gulp.src('../www-myalcoholist-com-angular/model/app.js')
    .pipe(ngAnnotate())
    .pipe(gulp.dest('dist'));
});

当我执行这个 nodejs 脚本时,它会默默地失败。或者......好吧......它什么也没做。

我只给了它主要的 app.js 文件作为参数。我可以给它所有的项目吗?

当我从终端运行 ng-annotate 时,它​​会在我的项目中正确添加注释.. 好吧.. 我希望 :)

那么为什么这个脚本失败了?

我是 gulp 的新手,所以任何信息都将不胜感激。

4

2 回答 2

2

gulp-ng-annotate不会尝试在您的应用程序中查找其他文件。您需要app.js在管道到 gulp-ng-annotate 或src所有文件之前将您的应用程序连接到一个文件中,然后将它们传递给`gulp-ng-annotate。

例如 concat 方法:

var gulp = require('gulp');
var ngAnnotate = require('gulp-ng-annotate');
var concat = require('gulp-concat');

gulp.task('default', function () {
 return gulp.src('../www-myalcoholist-com-angular/model/**/*.js')
    .pipe(concat('app.js'))
    .pipe(ngAnnotate())
    .pipe(gulp.dest('dist'));
});
于 2016-03-16T21:33:41.230 回答
0

示例配置 -

gulp.task('app', function() {
    return gulp.src([
       // './bower_components/angular/angular.min.js',
       // './bower_components/angular-sanitize/angular-sanitize.min.js',
       //'./bower_components/angular-ui-select/dist/select.min.js',
       // './bower_components/angular-ui-router/release/angular-ui-router.min.js',
        './components/**/*.js'])
        .pipe(plumber())
        .pipe(count('## js-files selected'))
        .pipe(concat('./app/all.min.js', {newLine: ';'}))
        .pipe(ngAnnotate({
            // true helps add where @ngInject is not used. It infers.
            // Doesn't work with resolve, so we must be explicit there
            add: true
        }))
        .pipe(gulp.dest('./dist'));
});

这将生成一个串联的构建 js 文件。我已将供应商 js 文件分开,但您可以以任何您喜欢的方式拥有它。

PS - 任何其他任务(例如 Linting)都与 watch 任务一起单独完成。

于 2017-05-16T05:38:46.610 回答