gpt4 book ai didi

javascript - Minifier混淆变量名

转载 作者:行者123 更新时间:2023-11-30 16:05:49 24 4
gpt4 key购买 nike

我有一个使用解析功能并调用服务 MyService 的 Angular 路由器。

var Router = function ($stateProvider, $urlRouterProvider) {

$stateProvider
.state(home, {
resolve:{
myFactory: 'MyFactory',
checkUser: function(myFactory){
return myFactory.getUser().then(function(data){
// some logic with data
});
}
},
});
};

module.exports = ['$stateProvider', '$urlRouterProvider', Router];

当我通过压缩器运行它时,我最终得到:

var e = function(t, e) {

t.state(home, {
url: "/home",
resolve: {
myFactory: "MyFactory",
checkUser: function(t){
return t.getUser().then(function(e){

});
}
},
})
}
;
t.exports = ["$stateProvider", "$urlRouterProvider", e]

这里的问题是变量 te

在顶层:

t = $stateProvider
e = $urlRouterProvider

然而,在我的resolve中,te又被使用了,但是:

t = $stateProvider but should = myFactory
e = $urlRouterProvider but should = data

因此 t.getUsert.getProducts 实际上并不存在,因此我的应用无法加载。

更新:


注释版本:

var Router = function ($stateProvider, $urlRouterProvider) {

$stateProvider
.state(home, {
resolve:{
myFactory: 'MyFactory',
checkUser: ['myFactory', function(myFactory){
return myFactory.getUser().then(function(data){
// some logic with data
});
}]
},
});
};

module.exports = ['$stateProvider', '$urlRouterProvider', Router];

最佳答案

myFactory 是此解析器中的本地依赖项。与任何其他依赖项一样,它应该是 annotated以便在缩小的 JS 中正确注入(inject)。

            checkUser: ['myFactory', function(myFactory){
return myFactory.getUser().then(function(data){
// some logic with data
});
}]

Strict mode可用于避免生产中的此类错误。

关于javascript - Minifier混淆变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37072195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com