【发布时间】:2015-08-12 19:51:02
【问题描述】:
我有一个 Angular (1.4.3) 应用程序和一个使用 ngAnnotate 和 uglify 来最小化它的 gulp 管道。
我有一个服务提供者,该服务具有打开(ui.bootstrap)模式的功能:
angular.module('myapp', ['ui.bootstrap'])
.provider('AuthUser', function(){
return {
//stuff
$get: function($q, MyConstant, $modal){
return {
showLoginModal : showLoginModal
}
function showLoginModal() {
$modal.open({
templateUrl: '/path/to.html'
//stuff
});
}
}
}
}
这在开发模式(非最小化)下运行良好,最小化代码在节点开发服务器上运行时,在我的本地(Windows)机器上运行良好。但是当我将代码拉入我的 AWS (ubuntu) 实例 gulp build 并静态提供它时,我在 $injector:unpr: Unknown provider: Provider <- 上崩溃了
错误消息本身(以及我给出的corresponding error reference link)并没有告诉我缺少哪个提供程序,它们只是有一个空白区域。在跟踪之后,我可以看到它发生在对 $modal.open() 的调用中,因此假设缺少的依赖项是 $modal,但无法弄清楚原因。
MyConstant 被注入并在服务的其他地方使用没有问题,所以我认为这不是最小化问题,但为了记录,这是最小化的方法:
angular.module("civ.core").provider("AuthUser", function() {
var e = this;
return e.token = null ,
e.user = null ,
{
initialize: function(t) {
e.token = t.token,
e.user = t.user
},
$get: ["$http", "$q", "$localStorage", "$modal", "DEVELOPMENT", "PRODUCTION", function(t, i, n, o, s, a) {
function l(e, i) {
t.defaults.headers.common.token = "Token " + e,
t.defaults.headers.common.user = i
}
function r() {
console.log("instantiating"),
console.log(e),
x.user = e.user,
x.authToken = e.token,
x.user.anonymous && (x.user.votes = {},
x.user.pinnedTags = [])
}
function c(e) {
return o.open({
templateUrl: "app/core/templates/login.html",
//stuff...
也就是说,这是我第一次尝试缩小和吞咽 - 所以请帮帮我......
【问题讨论】:
-
我对提供者的了解不够多,无法回答,但您在缩小示例中的上述设置似乎与docs 中描述的设置不匹配。也许有一些东西。
标签: javascript angularjs