私は 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 を使用して次のようにこの JS ファイルをリントします。
gulp.task('lint1', function() {
gulp.src('test.js')
.pipe(jshint())
.pipe(jshint.reporter('default'));
});
エラーは報告されません。次に、 を使用してこれを縮小しgulp-uglify
ます。
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 ファイルが悪いのgulp-uglify
でしょうか、それともめちゃくちゃですか? この問題を解決するにはどうすればよいですか?