Angular 4本地调试:无需发布Nexus即可同步ng-company包变更
我来帮你详细拆解这两种方案在Windows系统下的具体操作,还有各自的优劣势,方便你按需选择:
方案一:使用npm link / yarn link(实时同步变更)
这种方案最适合你频繁修改ng-company的场景,能让ng-app实时感知到ng-company的代码变更,不用反复打包安装。
具体步骤:
先给
ng-company做本地全局注册
打开命令提示符/PowerShell(建议用管理员身份,避免Windows权限问题),切换到ng-company的根目录,执行:- 用npm的话:
npm link - 用yarn的话:
yarn link
这一步会把你的ng-company包注册到本地的npm/yarn全局仓库,相当于给它打了个“本地快捷方式”。
- 用npm的话:
把
ng-app和本地的ng-company关联起来
切换到ng-app的根目录,执行:- npm:
npm link ng-company(这里的ng-company必须和你ng-company包的package.json里的name字段完全一致) - yarn:
yarn link "ng-company"
完成后,ng-app的node_modules里的ng-company就会变成指向你本地ng-company源码的软链接,而不是拷贝的文件。
- npm:
实时同步变更
如果ng-company是需要编译的Angular库,记得在ng-company目录下执行ng build --watch,开启实时编译。之后你修改ng-company的代码,编译后的产物会自动同步到ng-app,刷新ng-app就能看到效果啦。
Windows下的注意事项:
- 要是遇到链接失效、模块找不到的情况,可以先在
ng-app里执行npm unlink ng-company/yarn unlink "ng-company",然后重新走一遍链接流程。 - 避免同时给多个项目链接同名包,容易出现全局冲突。
方案二:本地打包后通过路径安装(一次性同步变更)
这种方案更稳定,不会有全局链接的冲突,适合你需要测试ng-company打包后的最终效果,或者修改频率不高的场景。
具体步骤:
打包
ng-company
切换到ng-company根目录,先执行编译命令(比如Angular库用ng build ng-company),然后打包成tgz文件:- npm:
npm pack(执行后会在当前目录生成类似ng-company-1.0.0.tgz的压缩包) - yarn:
yarn pack(效果和npm一致)
- npm:
在
ng-app里安装本地tgz包
切换到ng-app根目录,执行安装命令:- yarn:
yarn add ../ng-company/ng-company-1.0.0.tgz(用相对路径最方便,也可以用绝对路径,比如file:///C:/projects/ng-company/ng-company-1.0.0.tgz) - npm:
npm install ../ng-company/ng-company-1.0.0.tgz
这一步会把tgz包里的内容拷贝到ng-app的node_modules里,取代原来的依赖。
- yarn:
变更后的更新
每次修改ng-company后,都需要重新执行打包+安装命令,才能让ng-app获取到最新的变更。
两种方案的优劣势对比
| 方案类型 | 优点 | 缺点 |
|---|---|---|
| npm/yarn link | 实时同步变更,无需重复打包,效率高 | 可能出现全局链接冲突,Windows下偶有权限问题 |
| 本地tgz安装 | 稳定无冲突,能测试打包后最终效果 | 每次变更都要重新打包安装,步骤繁琐 |
内容的提问来源于stack exchange,提问作者Hadi Rasouli
相关产品推荐
相关产品推荐

