0

我想从节点模块导入我的模块。这个节点模块也有我需要导航的路线。

我需要的结果:

连接我的 app.module 以从我的节点模块中的模块获取 loadChildren 。TestModule 需要连接到 forRoot 以便我可以延迟加载 TestModules 路由。

TestModule 是一个 dist 文件夹,它使用 ng-packagr 中内置的 angular cli 版本 6 添加到节点模块中。

这是我的核心应用模块:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';

import { AppComponent } from './app.component';
import { TestModule } from "test";

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
     TestModule,
     BrowserModule,
     RouterModule.forRoot(
      [
        {
          path: "",
          redirectTo: "test",
          pathMatch: "full"
        },
        {
          path: "test",
          loadChildren: "test#TestModule"
        },
     ])
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

这是导入的 TestModule(即一个 npm 包):

import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { HomeComponent } from './containers/home/home.component';
import { LayoutSidebarComponent } from './layouts/layout-sidebar/layout-sidebar.component';

const COMPONENTS = [
  HomeComponent
];

@NgModule({
  imports: [
    CommonModule,
    RouterModule.forChild([
      {
        path: '',
        pathMatch: 'full',
        component: LayoutSidebarComponent,
        children: [
          {
            path: '',
            component: HomeComponent
          }
        ]
      }
    ])
  ],
  declarations: [...COMPONENTS],
  exports: []
})
export class TestModule {}

这是我的核心应用 tsconfig.aoo.json:

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "module": "es2015",
    "types": [
      "node"
    ]
  },
  "include": [
    "../node_modules/test/**/*.ts"
  ],
  "exclude": [
    "src/test.ts",
    "**/*.spec.ts"
  ]
}

信息:

当我对端口 localhost:4200 执行 ng 服务时,我没有收到控制台错误,也没有 git 命令错误。

我将 angular cli 6 与 angular 6、ng-packagr、webpack 和 iterm 一起用于 git cli。

它很难调试,因为我没有错误可以使用。似乎核心应用程序模块没有加载。

4

1 回答 1

1

AFAIK,当你延迟加载一个模块时,你不能同时导入它尝试从你的 app.module.ts 中的导入中删除 TestModule

于 2018-06-27T07:19:57.670 回答