angularjs - Gulp ngmin + uglify 无法正常工作

标签 angularjs uglifyjs gulp ngmin

我有以下 gulp 任务:

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

问题是,作为 ngmin() 输出的连接文件工作正常,但在丑化代码后,出现问题,我得到 following error .

没有具体的指标从哪里开始调试。

堆栈跟踪:
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 

最佳答案

解决方案是使用 mangle 运行 uglify 任务选项设置为 false。
即:.uglify({mangle: false})
整个代码:

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

关于angularjs - Gulp ngmin + uglify 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21969021/

相关文章:

javascript - 使用 Gulp Bootstrap JavaScript

javascript - 在 Angular 中输入后如何显示(和隐藏)按钮?

javascript - 在 Symfony/Twig 响应中缩小/丑化嵌入的 JavaScript

javascript - 隐藏表格列依赖于多个动态json数组中的按钮

gruntjs - 为什么建议先使用 concat,然后使用 uglify,而后者可以两者兼得?

javascript - 在运行时打包客户端脚本并支持 Common.js

node.js - gulp 和 url 重写

javascript - 加载文件后运行 gulp 任务

javascript - 在 Angular 服务中扩展基类

javascript - AngularJS 等待标签加载到 DOM 中