Разбиение нескольких модулей в их собственный файл js - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь добиться разделения кода через ленивую загрузку в моем угловом приложении.В результате каждый модуль имеет свой собственный файл .js, содержащий свои страницы / компоненты и т. Д. Таким образом, файл .js модуля A можно использовать отдельно от файла .js из модуля B

. В моем AppModule (root) я используюследующая маршрутизация.

const routes: Routes = [
  {path: 'clientA', loadChildren: './clientA.module#ClientAModule'},
  {path: 'clientB', loadChildren: './clientB.module#ClientBModule'}
];

export const routing = RouterModule.forRoot(routes);

ClientAmodule:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { CommonModule } from '@angular/common';
import { ComponentsModule } from './components.module';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';

// containers
import {
  StartComponent
} from './pages';

// routes
export const ROUTES: Routes = [
  { path: 'start', component: StartComponent }
];

@NgModule({
  declarations: [StartComponent],
  imports: [CommonModule, FormsModule, ReactiveFormsModule, ComponentsModule, RouterModule.forChild(ROUTES)]
})
export class ClientAModule {}

И clientBModule:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { CommonModule } from '@angular/common';
import { ComponentsModule } from './components.module';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';

// containers
import {
  StartComponent
} from './pages';

// routes
export const ROUTES: Routes = [
  { path: 'start', component: StartComponent }
];

@NgModule({
  declarations: [StartComponent],
  imports: [CommonModule, FormsModule, ReactiveFormsModule, ComponentsModule, RouterModule.forChild(ROUTES)]
})
export class ClientBModule {}

Обратите внимание, что оба модуля используют ComponentsModule, которые совместно используют общие компоненты между обоими модулями.

При сборке моего углового приложения я ожидал бы получить файлы .js для каждого модуля.Это происходит (я получаю clienta.js и clientb.js), однако большая часть логики представлена ​​в: default ~ clienta-module ~ clientb-module.js, этот файл содержит компоненты, которые являются уникальными для их модуля (стартовые компоненты).

Как добиться, чтобы каждый модуль имел свой собственный файл dist .js?(содержит собственную логику, поэтому нет общего файла .js, нет модуля по умолчанию)

1 Ответ

0 голосов
/ 11 февраля 2019

используйте приведенную ниже команду для генерации ленивого загруженного модуля в другом файле

ng build --aot --named-chunks

Для Ref: https://github.com/angular/angular-cli/wiki/build

...