angularjs - Gulp ngmin+uglify no funciona correctamente
uglifyjs (2)
La solución estaba ejecutando uglify task con la opción mangle configurada en false es decir: .uglify({mangle: false})
código completo:
gulp.task(''scripts'', function() {
return gulp.src(''app/js/**/*.js'')
.pipe(jshint(''.jshintrc''))
.pipe(jshint.reporter(''default''))
.pipe(concat(''main.js''))
.pipe(ngmin())
.pipe(gulp.dest(''app/dist/js''))
.pipe(rename({suffix: ''.min''}))
.pipe(uglify({mangle: false}))
.pipe(gulp.dest(''app/dist/js''))
.pipe(livereload(server))
.pipe(notify({ message: ''Scripts task complete'' }));
});
Tengo la siguiente tarea trilla:
gulp.task(''scripts'', function() {
return gulp.src([''app/js/app.js'', ''app/config/config.js'', ''app/js/controllers.js'', ''app/js/directives.js'' , ''app/js/filters.js'', ''app/js/footer.js'',
''app/js/guideTour.js'', ''app/js/mobileBanner.js'', ''app/js/services.js'', ''app/js/youtube.js'', ''app/js/dataSync.js'', ''app/js/addthis.js''])
//.pipe(jshint(''.jshintrc''))
.pipe(jshint.reporter(''default''))
.pipe(concat(''main.js''))
.pipe(ngmin())
.pipe(gulp.dest(''app/dist/js''))
.pipe(rename({suffix: ''.min''}))
.pipe(uglify())
.pipe(gulp.dest(''app/dist/js''))
.pipe(livereload(server))
.pipe(notify({ message: ''Scripts task complete'' }));
});
El problema es que el archivo concatenado que también es el resultado de ngmin (), funciona bien, pero después de verificar el código, algo se rompe y aparece el siguiente error .
Sin indicador específico donde comenzar a depurar.
Rastreo de pila:
Error: [$injector:unpr] http://errors.angularjs.org/1.2.9/$injector/unpr?p0=eProvider%20%3C-%20e
at Error (native)
at http://localhost:8000/angular/angular.min.js:6:449
at http://localhost:8000/angular/angular.min.js:32:125
at Object.c [as get] (http://localhost:8000/angular/angular.min.js:30:200)
at http://localhost:8000/angular/angular.min.js:32:193
at c (http://localhost:8000/angular/angular.min.js:30:200)
at Object.d [as invoke] (http://localhost:8000/angular/angular.min.js:30:417)
at http://localhost:8000/angular/angular-route.min.js:10:302
at Object.q [as forEach] (http://localhost:8000/angular/angular.min.js:7:380)
at http://localhost:8000/angular/angular-route.min.js:10:248
No necesitas configurar mangle en falso, solo puedes usar ng-annotate y llamar a tu gulpfile.js así:
var ngAnnotate = require(''gulp-ng-annotate'')
...
gulp.task(''scripts'', function() {
return gulp.src(''app/js/**/*.js'')
.pipe(jshint(''.jshintrc''))
.pipe(jshint.reporter(''default''))
.pipe(concat(''main.js''))
.pipe(ngmin())
.pipe(gulp.dest(''app/dist/js''))
.pipe(rename({suffix: ''.min''}))
.pipe(ngAnnotate())
.pipe(uglify())
.pipe(gulp.dest(''app/dist/js''))
.pipe(livereload(server))
.pipe(notify({ message: ''Scripts task complete'' }));
});
trabaja en mis proyectos para la aplicación en un solo archivo