我正在尝试使用 Webpack 捆绑 Angular 应用程序,并且在缩小捆绑包后遇到问题。此语法带有依赖项的手动注释,适用于:
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-annotate-loader。这是配置文件的相关部分:
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'ng-annotate!babel?stage=1'
},
但这并不能解决[$injector:modulerr]
错误。试图用 更改loader: 'ng-annotate!babel?stage=1'
线路loaders: ['ng-annotate', 'babel?stage=1']
,但没有任何改善。你能建议我如何解决它吗?
编辑:最终发现我的问题基本上是Angular ng annotate does not work with babel的重复
EDIT2:有人向我指出,ng-annotate 未能注释 angular 模块的 .config,因为我将 angular 作为 es6 模块导入,而不是将其声明为变量,这显然混淆了 ng-annotate。