我正在尝试捆绑一个使用Webpack的角度应用程序,并且在缩小捆绑后出现了问题。此语法与依赖项的手动注释一起工作:
var app = angular.module('app', [
'ui.router'
])
.config(['$locationProvider', '$stateProvider', ($locationProvider, $stateProvider) => {
$locationProvider.html5Mode(true);
$stateProvider
.state('root', {
url: '/',
views: {
'': {
template: '<p>Hello!</p>'
}
}
});
}]);当这个语法产生一个$injector:modulerr错误时:
var app = angular.module('app', [
'ui.router'
])
.config(($locationProvider, $stateProvider) => {
$locationProvider.html5Mode(true);
$stateProvider
.state('root', {
url: '/',
views: {
'': {
template: '<p>Hello!</p>'
}
}
});
});我正在为Webpack使用ng-注释-加载程序。以下是配置文件的相关部分:
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'ng-annotate!babel?stage=1'
},但这并不能修复[$injector:modulerr]错误。尝试用loaders: ['ng-annotate', 'babel?stage=1']更改loader: 'ng-annotate!babel?stage=1'行,没有任何改进。你能建议我怎么修理它吗?
编辑:最终发现我的问题基本上是角ng注释不适用于babel的重复
EDIT2:有人向我指出,ng注解未能注释角模块的.config,因为我将角作为es6模块导入,而不是将其声明为变量,这显然使ng注释混淆了。
发布于 2015-11-03 21:58:16
好的,我最终在ng-注释的自述中发现的是,当将字符串'ngInject';放在函数中时,可以显示要注释哪个函数的ng-annotate。
我用我的装置试过了,它成功了。
但是最好以一种不需要函数内部这种无关的标记字符串的方式来设置ng注解加载器。
P.S.:我问题的Edit2部分包含了最终的答案--在我的例子中,ng注释的静态分析器不高兴了,因为angular是作为ES6模块导入的,而不是使用require语法作为变量声明的。
https://stackoverflow.com/questions/33506235
复制相似问题