gulp-ng-annotate - как это использовать?

Я хочу минимизировать мой большой угловой проект.

Используя угловой 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 из терминала, он правильно добавляет аннотации к моему проекту... ну.. я надеюсь:)

так почему этот скрипт не работает?

Я новичок в глотке, поэтому любая информация будет принята с благодарностью.

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'));
});

Пример конфигурации -

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, выполняется отдельно в сочетании с задачей наблюдения.

Другие вопросы по тегам