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