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

本地测试@angular/cli的ng-add功能:如何Mock npm注册表?

本地测试Angular Schematics的ng-add功能解决方案

你遇到的这个问题其实挺普遍的——ng add默认会优先从npm仓库拉取包资源,哪怕你已经通过npm link关联了本地项目。不过不用愁,有几种实用的方法能让Angular CLI直接识别本地的schematics包,完全不需要Mock整个npm注册表:

方法一:直接指定本地包路径

这是最快捷的方式,不用修改任何配置,直接在ng add命令里传入本地schematics项目的绝对或相对路径就行:

ng add ./path/to/your/schematics-project

举个例子,如果你的schematics项目在当前测试项目的同级目录../my-feature-schematics里,就可以运行:

ng add ../my-feature-schematics

这样CLI会直接读取本地的包文件,跳过npm仓库的下载流程。

方法二:用npm pack生成本地压缩包测试

这种方式更贴近真实的npm安装场景,能同时验证包的打包是否正常:

  1. 进入你的schematics项目根目录,执行打包命令:
npm pack

这会生成一个类似my-library-1.0.0.tgz的压缩包文件。
2. 回到测试Angular项目,执行ng add并指定这个本地压缩包的路径:

ng add ./path/to/my-library-1.0.0.tgz

方法三:修改测试项目的依赖配置(长期测试用)

如果需要频繁测试,不想每次都输入路径,可以给测试项目的package.json添加本地依赖:

  1. 在测试项目的package.json的dependencies字段里加入:
"my-library": "file:../path/to/your/schematics-project"
  1. 执行npm install,npm会自动创建本地关联。
  2. 之后再运行ng add my-library,CLI就会优先识别本地的包,不会再去npm仓库请求了。

另外要注意,确保你的schematics项目的package.json里已经正确配置了schematics字段,指向你的schematics集合入口文件,比如:

"schematics": "./schematics/collection.json"

这是CLI能找到ng-add逻辑的关键前提。

内容的提问来源于stack exchange,提问作者Maciej Treder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:35:34