1

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 を使用するのは初めてで、マップにモジュールが 1 つしかない理由と、具体的にそのモジュールがなぜあるのか、よくわかりません。

何かアドバイス?

アップデート

と呼ばれる場所を見つけました。ルート ファイルでは、いくつかの共有された子をロードする必要があります。rc4 では、ルーター 3.0.0-rc1 では次のようなパスでした: 'device', component: DeviceComponent,

children: [
  {
    path: 'selector',
    component: DeviceSelectorComponent
  },
  ...CONTENT_DEVICE_PREVIEW_ROUTES
]

およびrc5では、ルーター3.0.0を使用

loadChildren: 'app/+device/device.module#DeviceModule',
4

0 に答える 0