簡體   English   中英

為什么uglify無法在gulp中處理我的JavaScript文件

[英]Why uglify not working for my javascript file in gulp

我無法確定為什么uglify無法為我的app.js(angularjs)文件工作。 這是我的js文件的一部分。

(function() {
    'use strict';

    var coursesApp = angular.module('pwaCoursesApp',['ngRoute', 'ngSanitize'])
    coursesApp.config(['$routeProvider', '$locationProvider', function( $routeProvider, $locationProvider){
        $routeProvider
        .when('/', 
            {
                templateUrl: '/home.html',
                controllerAs: 'homeCtrl'
            })
        .otherwise({redirectTo:'/'});
    }]);

    coursesApp.controller('homeCtrl', function($scope, $http) {

    });
})();

這是我的gulify腳本

gulp.task('scripts', function() {
  var sources = [
    'node_modules/es6-promise/dist/es6-promise.js',
    'app/scripts/app.js',
    ];

  return gulp.src(sources)
    .pipe($.concat('main.min.js'))
    .pipe($.uglify())
    .pipe(gulp.dest('dist/scripts'))
    .pipe($.size({title: 'scripts'}));
});

並且gulp告訴我它已經成功地變丑了,但是當我渲染我的應用程序時,它根本無法正常工作,並向我顯示該錯誤消息。

main.min.js:2 Error: [$injector:unpr] http://errors.angularjs.org/1.3.8/$injector/unpr?p0=tProvider%20%3C-%20t%20%3C-%20homeCtrl
    at http://localhost:3000/scripts/main.min.js:1:6739
    at http://localhost:3000/scripts/main.min.js:1:22851
    at Object.r [as get] (http://localhost:3000/scripts/main.min.js:1:21847)
    at http://localhost:3000/scripts/main.min.js:1:22924
    at r (http://localhost:3000/scripts/main.min.js:1:21847)
    at Object.i [as invoke] (http://localhost:3000/scripts/main.min.js:1:22103)
    at l.instance (http://localhost:3000/scripts/main.min.js:2:10025)
    at http://localhost:3000/scripts/main.min.js:2:1403
    at o (http://localhost:3000/scripts/main.min.js:1:7233)
    at x (http://localhost:3000/scripts/main.min.js:2:1387) <div ng-view="" class="ng-scope">

但不丑陋,它工作順利。 請讓我知道我錯過了什么。 謝謝。

當您使用快捷方式語法注入依賴項時,通常會發生這種情況。

angular
    .module('myapp')
    .controller('myController', function ($rootScope, $location) {

})

是快捷方式語法的示例。

這很糟糕,因為依賴項不是用字符串編寫的。 因此,當您縮小尺寸時,它會變成類似

function(a,b)

這顯然是行不通的。

使用$ inject代替。

有關更多信息,請參見此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM