【发布时间】:2017-06-03 10:08:31
【问题描述】:
我正在尝试在我现有的 angularjs [1.4.7] 应用程序中使用 webpack。我有一个自定义模块,它使用 webpack 作为捆绑包生成。我稍后将该自定义模块添加为其他模块中的依赖项。生成捆绑包时没有任何错误。但是当我将此模块用作依赖项时,它会抛出错误。我已经尝试了所有可能的方法,但无法理解这里出了什么问题。
错误 由于以下原因未能实例化模块 Module2: 错误:[$injector:modulerr]....... 当模块由于某些异常而无法加载时会发生此错误。上面的错误消息应该提供额外的上下文。
模块加载失败的一个常见原因是您忘记将文件包含在定义的模块中,或者文件无法加载。
代码片段 webpack.config.js
module.exports = {
entry: {
app: [ './src/main/resources/js/app/app.module.js' ]
},
output: {
filename: './src/main/resources/js/app/bundle.js'
},
node: {
module: "empty",
net:"empty",
fs: "empty"
},
watch: false
};
app.module.js
'使用严格';
var angular = require('angular');
module.exports = angular.module('module1', [
require('./components/services').name,
require('./components/controllers').name,
require('./components/directives').name
]);
组件/服务/index.js
'use strict';
var angular = require('angular');
module.exports = angular.module('services',[])
.factory('Service1', require('./Service1'))
.factory( 'Service2' , require('.Service2'))
组件/服务/service1.js
module.exports = function Service1( $q)
{
var service1 = {};
// service implementation
return service1;
};
组件/控制器/index.js
'use strict';
var angular = require('angular');
module.exports = angular.module('controllers',[])
.controller('controller1' , require('./controller1'))
.controller('controller2' , require('./controller2'));
组件/指令/index.js
'use strict';
var angular = require('angular');
module.exports = angular.module('directives',['services'])
.directive('directive1', require('./directive1'))
.directive('directive2' , require('./directive2'))
index.html
<script src="bundle.js" type="text/javascript"></script>
另一个 app.js
var app2 = angular.module('Module2',['ui.router','ui.bootstrap','module1']);
【问题讨论】: