You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 2+如何构建特定模块?多模块项目按需编译问询

在Angular 2+多模块应用中仅构建特定模块的方法

当然有办法搞定这个需求!Angular CLI本身就支持针对特定模块进行构建,完全不用先编译所有模块再去清理无用的chunk,下面给你两种最实用的方案:

方案一:用Angular CLI的--module参数直接指定目标模块

如果只是需要单独构建某一个模块(比如你的module b),可以直接用这条命令:

ng build --module=b

这里的b可以是模块类的名称,也可以是模块文件的相对路径(比如src/app/b/b.module.ts)。

不过如果要同时构建多个模块(比如b和c),这个参数就不够用了,推荐用下面的自定义配置方案。

方案二:在angular.json中配置多项目构建目标

这个方案适合需要频繁给不同客户交付不同模块组合的场景,步骤如下:

  1. 打开项目根目录下的angular.json,找到projects节点下的主项目配置(比如my-app)
  2. 复制一份主项目的配置,重命名为适合客户场景的名称,比如my-app-client-bc
  3. 在新配置的architect -> build -> options里,修改两个关键配置:
    • main:指定专门为b+c模块准备的入口文件(比如src/main-bc.ts)
    • tsConfig:指定对应的TypeScript配置文件(比如tsconfig.bc.json,可以复制主配置后微调)
  4. 创建src/main-bc.ts,在里面只导入并启动包含b和c模块的根模块(比如AppModuleBC)——这个根模块里只需要声明、导入b和c模块,完全不用管a模块
  5. 之后要构建b+c模块组合时,直接运行:
ng build my-app-client-bc

额外注意事项

  • 如果你的模块是通过路由懒加载的,一定要在自定义的根模块里只注册需要的路由,这样Angular打包时只会生成这些路由对应的chunk,不会包含a模块的代码
  • 要是你只是想排除某一个模块(比如排除a),也可以在angular.json的build -> options -> exclude里添加该模块的路径,但这种方式不如直接指定需要的模块精准,更适合临时快速排除的场景

内容的提问来源于stack exchange,提问作者rahul cp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:45:21