纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

angular 多模块项目构建 Angular 多模块项目构建过程

张喜硕   2021-04-21 我要评论

引言

两个月前已存在录题系统需要构建出题系统且两套系统存在公用的实体、组件以及服务如何在构建新系统的同时复用原系统的代码成为了项目难点。

当时的解决方案是将两个系统放在一个应用里并为该应用配置两套构建方案当进行 ng serveng build 时加载相应配置动态构建出两套系统从而解决了共享代码的问题。

现在再去看 Angular 理解又不同了。

新的思想与理解都源于后端的思考在构建后端项目时为了实现代码复用会构建多模块。

就像下图所示一样通用的代码放在 CoreCommon 模块中各业务模块依赖这两个模块通过模块间依赖实现代码复用。

那么问题就来了在 Angular 里我们可不可以像后台一样去构建多模块项目以达到复用的目的呢?

实现

参考学习

之前一直使用 Angular Multi Module 作为关键字进行搜索结果查询出来的都是多模块惰性加载的文章参考意义不大。

直到最近才发现之前搜索的关键字错误应该是 Angular Multi Library And Application

具体学习请参考以下两篇文章:

ANGULAR WORKSPACES: MULTI-APPLICATION PROJECTS

创建库 - ANGULAR官方文档

初始化命令

创建一个 Angular 项目其名为 angular-project 不创建 Application 不进行交互跳过依赖的安装。

ng new angular-project
 --createApplication=false 
--interactive=false 
--skipInstall=true

生成库 common 生成应用 sso 跳过依赖的安装。

ng g library common
 --skipInstall=true
ng g application sso 
--style=scss 
--routing=true
 --skipInstall=true

安装依赖:

npm install 
--registry=https://registry.npm.taobao.org

项目结构

最终的项目结构长这样所有模块位于 projects 目录下。

Angular Library 的结构如下就像平常用的一样也有 Module  Module 中包含组件、服务等等。

同时我们开始反思之前用过的 ShareModule 其实我们应该将其做成一个 Angular Library 并将其发布到 npm 仓库这样在多个项目之间快速移植公共模块也更高效快捷。

但是在开发过程中共享模块可能有所改动频繁发布就有些麻烦如何直接引用本地的模块呢?

构建 common 库:

ng build common

如果该库频繁改动的话可以添加监听参数文件修改后自动构建:

ng build common --watch

命令执行后会在 dist 目录生成构建成功的 common 库。

使用起来就像我们使用的其他 Angular 库一样直接 import  WebStorm 会自动提示。

import 
{ 
CommonModule
 } 
from 'common';

测试

在业务模块中引入 CommonModule

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

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { CommonModule } from 'common';

@NgModule({
 declarations: [
  AppComponent
 ],
 imports: [
  BrowserModule,
  AppRoutingModule,
  CommonModule
 ],
 providers: [],
 bootstrap: [AppComponent]
})
export class AppModule { }

AppComponent 组件中使用 CommonModule 中的 CommonComponent

<h1>App Component HTML</h1> 
<lib-common></lib-common>

注:库组件生成的默认前缀是 lib

进入业务组件进行 ng serve 成功。

总结

以上所述是小编给大家介绍的Angular 多模块项目构建过程希望对大家有所帮助!


相关文章

猜您喜欢

  • python 替换word关键字 python实现替换word中的关键文字(使用通配符)

    想了解python实现替换word中的关键文字(使用通配符)的相关内容吗漂泊者_LGD在本文为您仔细讲解python 替换word关键字的相关知识和一些Code实例欢迎阅读和指正我们先划重点:python,替换,word,关键字,通配符下面大家一起来学习吧。..
  • Go 字符串格式化 Go 字符串格式化的实例代码详解

    想了解Go 字符串格式化的实例代码详解的相关内容吗1350368559 ·在本文为您仔细讲解Go 字符串格式化的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Go,字符串格式化,go格式化下面大家一起来学习吧。..

网友评论

Copyright 2020 www.Shellfishsoft.com 【贝软下载站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式