Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
gulp uglify正在创建糟糕的javascript_Javascript_Angularjs_Gulp_Gulp Uglify - Fatal编程技术网

gulp uglify正在创建糟糕的javascript

gulp uglify正在创建糟糕的javascript,javascript,angularjs,gulp,gulp-uglify,Javascript,Angularjs,Gulp,Gulp Uglify,我正在使用AngularJS,我的应用程序JS设置如下 var userApp = angular.module('userApp',['ngRoute','ngAnimate', 'bw.paging', 'appConfig', 'userControllers']); userApp.run(function($rootScope, $location) { $rootScope.pagination = { }; }); userApp.config(['$httpProv

我正在使用AngularJS,我的应用程序JS设置如下

var userApp = angular.module('userApp',['ngRoute','ngAnimate', 'bw.paging', 'appConfig', 'userControllers']);

userApp.run(function($rootScope, $location) { 
    $rootScope.pagination = { };
});

userApp.config(['$httpProvider', function($httpProvider) {
    $httpProvider.defaults.useXDomain = true;
}]);

userApp.config(['$routeProvider', function($routeProvider) {
    $routeProvider
        .when('/', {
            templateUrl : 'partials/index.html', 
            controller : 'IndexController' 
        })
        .otherwise({ 
            templateUrl : 'partials/routeNotFound.html', 
            controller : 'NotFoundController' 
        });
}]);

var userControllers = angular.module('userControllers', []);
然后,我继续使用gulp按如下方式lint这个JS文件

gulp.task('lint1', function() {
    gulp.src('test.js')
        .pipe(jshint())
        .pipe(jshint.reporter('default'));
});
我没有收到任何错误报告。下一步,我继续使用
gulpuglify
缩小它

gulp.task('minify1', function() {
    gulp.src('test.js')
        .pipe(uglify())
        .pipe(gulp.dest('dist'));
});
我得到一个缩小的输出。然而,当我在html应用程序中使用缩小的输出时,我得到一个AngularJS错误。当我重新美化丑陋的JS时(通过jsbeautifier.org),我看到了以下结果

var userApp = angular.module("userApp", ["ngRoute", "ngAnimate", "bw.paging", "appConfig", "userControllers"]);
userApp.run(function(r, e) {
    r.pagination = {}
}), userApp.config(["$httpProvider", function(r) {
    r.defaults.useXDomain = !0
}]), userApp.config(["$routeProvider", function(r) {
    r.when("/", {
        templateUrl: "partials/index.html",
        controller: "IndexController"
    }).otherwise({
        templateUrl: "partials/routeNotFound.html",
        controller: "NotFoundController"
    })
}]);
var userControllers = angular.module("userControllers", []);
如您所见,有逗号
,其中应该有分号
。我的输入JS文件是坏的还是把事情搞砸了?如何解决此问题

变化:

userApp.run(function($rootScope, $location) { 
    $rootScope.pagination = { };
});
致:


问题不在于丑陋,而是你自己的代码。它打破了Angular的依赖注入

userApp.run(function($rootScope, $location) { 
    $rootScope.pagination = { };
});
应该是

userApp.run(['$rootScope', '$location', function($rootScope, $location) { 
    $rootScope.pagination = { };
}]);


或者,您可以使用ng annotate,它将为您处理这个依赖项注入问题

与您的问题无关,您的代码还有一些其他问题,如两次使用
.config
,以及使用
$rootScope
警报(1)和警报(2)
是完全有效的javascript。我认为丑八怪的翻译没有问题。你应该读一读:@Blowsie如何解决这些问题?对于
.config
,我可以将它们放在一个配置中,如
userApp.config(['$httpProvider','$routeProvider',function($httpProvider,$routeProvider){…}])
。这会“更好”吗?但是,我不知道你说的
$rootScope
有问题是什么意思。这就是我存储全局变量的地方,用于在不同的路由中进行分页,以及在导航到路由和从路由中进行导航时(我希望维护状态)。这很有效。我还需要6分钟来接受你的回答。有一个问题,我想是因为逗号
和分号
东西,但是在尝试了你的建议之后,尽管它有效,我仍然看到逗号而不是分号。那么我想,这个问题是AngularJS的问题,而不是JS或吞食uglify
?@JaneWayne我的回答提供了一些澄清。@JaneWayne uglify生成的代码是完全有效的。遗憾的是,这个问题中几乎没有指向这个答案的指针,因为这个问题本质上是问一个无关的问题。
userApp.run(['$rootScope', '$location', function($rootScope, $location) { 
    $rootScope.pagination = { };
}]);