【问题标题】:Gulp uglify breaking angular applicationGulp uglify 破角应用
【发布时间】:2014-06-26 19:44:20
【问题描述】:

当我尝试将 gulp-ugily 与我的 Angular 应用程序一起使用时,它会中断,即使我正在通过 gulp-ngmin 运行它。

这是 gulp 文件:

var gulp = require('gulp'),
    concat = require('gulp-concat'),
    ngmin = require('gulp-ngmin'),
    uglify = require('gulp-uglify');

gulp.task('compress', function() {
    gulp.src('client/js/source/*.js')
        .pipe(concat('app.js'))
        .pipe(ngmin())
        .pipe(uglify())
        .pipe(gulp.dest('client/js'));
});

【问题讨论】:

  • 怎么破?错误消息中的任何提示?
  • 参数 'myController' 不是函数,未定义。基本上是一个控制器。
  • 哇,我需要指定client/js/source/**/*.js 有没有办法指定只搜索隐居下来?
  • 确保你已经以最小安全的方式定义了你的依赖。应该在大括号中,例如:phonecatApp.controller('PhoneListCtrl', ['$scope', '$http', function($scope, $http) {...}]);。请参阅docs.angularjs.org/tutorial/step_05 并向下滚动“缩小注意事项”。

标签: javascript angularjs gulp uglifyjs


【解决方案1】:

这有助于禁用 uglify 中的 mangle 选项,因为它会混淆所有注入内容和命名。

.pipe(uglify({ mangle: false }))

【讨论】:

    【解决方案2】:

    也许为未来的用户回答这个问题,因为帖子似乎很旧。

    在 uglifying 时使用 ng-annotate 修复 AngularJS 问题。像任何其他库一样安装它:

    npm install gulp-ng-annotate --save-dev
    

    然后在你的 gulpfile.js 中使用它:

    var gulp = require('gulp')
    var concat = require('gulp-concat')
    var uglify = require('gulp-uglify')
    var ngAnnotate = require('gulp-ng-annotate')
    
    gulp.task('js', function () {
      gulp.src(['src/**/module.js', 'src/**/*.js'])
        .pipe(concat('app.js'))
        .pipe(ngAnnotate())
        .pipe(uglify())
        .pipe(gulp.dest('.'))
    })
    

    希望这有帮助!

    来源:https://medium.com/@dickeyxxx/best-practices-for-building-angular-js-apps-266c1a4a6917

    【讨论】:

    • 我在工作中使用这个解决方案,它从来没有让我失望过!谢谢@PhamHuyAnh!
    • 是的!工作答案。应该被接受为正确答案。
    • 在我看来这是一个更好的解决方案,因为 .js 比 'mangle: false' 解决方案更丑陋。
    • 注意:如果使用 ES6,您可能会遇到 ngAnnotate 的问题,因为它不再受支持。例如,添加 ES6 展开 ('...') 将导致解析错误。
    • 我同意@Zymotik!该解决方案在 2016 年 6 月对 Angular 1.x 有效!必须重新审视这个解决方案! =) 但是,我认为 webpacks 已经为许多语言解决了这个问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多