我的应用程序包含 15 个模块中的 100 个组件。是angular2.rc5
和angular-cli.beta10
。
我正在升级到但由于依赖angular-cli.beta14
而保留。angular2.rc5
到目前为止,一切正常,但升级angular-material2
图标开始引发错误。我只需要图标并且没有加载核心,但以防万一我也尝试加载它但没有成功。
Uncaught Error: Cannot find module './icon'.
webpackContextResolve @ src:10
webpackContext @ src:5
(anonymous function) @ index.js:13
(anonymous function) @ index.js:3
(anonymous function) @ index.js:8
__webpack_require__ @ bootstrap 7f40e89…:52
(anonymous function) @ app.component.ts:66
__webpack_require__ @ bootstrap 7f40e89…:52
(anonymous function) @ version.js:1
__webpack_require__ @ bootstrap 7f40e89…:52
(anonymous function) @ main.bundle.js:134514
__webpack_require__ @ bootstrap 7f40e89…:52
webpackJsonpCallback @ bootstrap 7f40e89…:23
(anonymous function) @ main.bundle.js:1
如果我在 webpackContextResolve 进行调试,我会看到代码是:
var map = {
"app/+device/device.module": 505
};
function webpackContext(req) {
return __webpack_require__(webpackContextResolve(req));
};
function webpackContextResolve(req) {
var id = map[req];
if(!(id + 1)) // check for number
throw new Error("Cannot find module '" + req + "'.");
return id;
};
webpackContext.keys = function webpackContextKeys() {
return Object.keys(map);
};
webpackContext.resolve = webpackContextResolve;
module.exports = webpackContext;
webpackContext.id = 14;
主模块如下所示:
@NgModule({
imports: [
[...]
SharedModule,
HomeModule,
DeviceModule,
[...]
DeviceModule 看起来像这样:
@NgModule({
imports: [
CommonModule,
SharedModule,
deviceRouting
],
像这样的 SharedModule :
@NgModule({
imports: [
// ANGULAR
BrowserModule,
FormsModule,
RouterModule,
ReactiveFormsModule,
JsonpModule,
// EXTERNAL
MdCoreModule,
MdIconModule,
[...]
这是我第一次使用 webpack,我真的不明白为什么地图中只有一个模块,为什么特别是那个模块。
有什么建议吗?
更新
我找到了它的名字。在路由文件中,我需要加载一些共享的孩子。在 rc4 中,使用路由器 3.0.0-rc1 就像这样的路径:'device',组件:DeviceComponent,
children: [
{
path: 'selector',
component: DeviceSelectorComponent
},
...CONTENT_DEVICE_PREVIEW_ROUTES
]
在 rc5 中,使用路由器 3.0.0
loadChildren: 'app/+device/device.module#DeviceModule',