前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Angular 多项目管理

Angular 多项目管理

作者头像
Jimmy_is_jimmy
发布2023-10-25 14:17:47
2060
发布2023-10-25 14:17:47
举报
文章被收录于专栏:call_me_Rcall_me_R

今天,我们谈谈,怎么使用 Angular 来管理多个项目呢?

在平常的开发中,我们一个项目建立一个仓库,不仅维护起来难,而且那个"无穷大"node_modules 也太尴尬了吧,多个项目多份 node_modules,要是同类型的项目,使用同份 node_modules 就好了 🥺

Demo 测试环境:

  • MacBook Air (M1, 2020)
  • Visual Studio Code - 版本: 1.83.1 (Universal)
  • http-server - ^14.1.1

初始项目

我们通过 NG-ZORRO 来初始化名为 jimmy-demo项目。那么,我们就可以在 package.json 上看到默认的启动和构建命令行:

代码语言:javascript
复制
{
  "scripts": {
    "start": "ng serve",
    "build": "ng build"
  }
}

实际上,它等同于运行了👇:

代码语言:javascript
复制
{
  "scripts": {
    "start": "ng serve jimmy-demo",
    "build": "ng build jimmy-demo"
  }
}

我们怎么知道它是默认运行了 jimmy-demo 项目呢?

这个问题的答案,我们可以通过查找 angular.json 文件来解答。

angular.json 就是默认导出了该项目:

代码语言:javascript
复制
"defaultProject": "jimmy-demo"

很好,现在我们知道了,我们运行 ng serve 是运行导出的默认的文件。运行 ng serve jimmy-demo 是运行执行的 jimmy-demo 文件。

我们来看看 build 之后的目录结构,如下:

build-jimmy-demo.png
build-jimmy-demo.png

是的,这个导出的目录,也可以在 angular.json 中找到答案:

代码语言:javascript
复制
"outputPath": "dist/jimmy-demo"

整个的 angular.json 文件见项目初始化默认的 angular.json 文件

我们简单 run 一下打包文件:

http-server -p 8081 dist/jimmy-demo

默认-jimmy-demo.png
默认-jimmy-demo.png

多项目配置

👌,上面我们已经知道了,是通过配置 angular.json 文件实现了项目的运行和打包等。

那么,我们有没有发现,整个默认的项目,配置的文件,其实都是放在字段 projects 下面。

哦😯,那么我们可以通过在 projects 下面配置另外一个项目不就行了吗?

在开始前,我们先看看项目 jimmy-demo 下的文件:

default-jimmy-demo.png
default-jimmy-demo.png

嗯~,我们参考该目录结构做下调整,并添加一个名为 app01app02 的项目,并把默认的项目放在 app01。调整后的 jimmy-demo 目录如下:

change-root-directory-after.png
change-root-directory-after.png

然后我们更改下 app01angular.json 中文件,完整的文件见 app01 项目的 angular.json 文件

然后更改下 app01/tsconfig.app.json 的路径指向:

代码语言:javascript
复制
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
  "extends": "../../tsconfig.json", // ./tsconfig.json 更正
  "compilerOptions": {
    "outDir": "../../out-tsc/app", // ./out-tsc/app 更正
    "types": []
  },
  "files": [
    "src/main.ts",
    "src/polyfills.ts"
  ],
  "include": [
    "src/**/*.d.ts"
  ]
}

然后我们重新启动项目:

ng serve app01

看到的效果和项目初始化的一样:

localhost-app01.png
localhost-app01.png

呀呀呀~试验成功!

那么,我们依瓢画葫芦,在 angular.json 中进行配置项目 app02(感兴趣的读者自行尝试)。

然后我们再更改下 package.json 的启动命令行:

代码语言:javascript
复制
{
  "script": {
    "startApplication": "ng serve $APPLICATION",
    "start:app01": "APPLICATION=app01 npm run startApplication",
    "start:app02": "APPLICATION=app01 npm run startApplication",
    "buildApplication": "ng build $APPLICATION",
    "build:app01": "APPLICATION=app01 npm run buildApplication",
    "build:app02": "APPLICATION=app02 npm run buildApplication",
  }
}

我们打包这两个项目 npm run build:app01npm run build:app02,得到 dist 内容。

dist-multiple-app.png
dist-multiple-app.png

最后,我们模拟下发布查看:

代码语言:javascript
复制
http-server -p 8081 dist/app01
http-server -p 8082 dist/app02

效果如下动图:

demo.gif
demo.gif

参考

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 初始项目
  • 多项目配置
  • 参考
相关产品与服务
项目管理
CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档