从 angular 官网下载 Schematics 的例子,在工作区的根目录下,运行库的 ng build 命令。
ng build my-lib
错误消息:
An unhandled exception occurred: Cannot find module '@angular-devkit/build-ng-packagr/package.json'
Require stack:
- C:\app\node-v12.18.3-win-x64\node_modules@angular\cli\node_modules@angular-devkit\architect\node\node-modules-architect-host.js
- C:\app\node-v12.18.3-win-x64\node_modules@angular\cli\node_modules@angular-devkit\architect\node\index.js
- C:\app\node-v12.18.3-win-x64\node_modules@angular\cli\models\architect-command.js
- C:\app\node-v12.18.3-win-x64\node_modules@angular\cli\commands\build-impl.js
- C:\app\node-v12.18.3-win-x64\node_modules@angular\cli\node_modules@angular-devkit\schematics\tools\export-ref.js
![](https://img.haomeiwen.com/i2085791/d764b190aa2a26ff.png)
npm install 之后,问题依旧:
![](https://img.haomeiwen.com/i2085791/557e34c0458f7e3a.png)
然而,我自己的 lib github repo 没有这个问题:
https://github.com/wangzixi-diablo/angular-monorepo
ng build my-lib 很顺利:
![](https://img.haomeiwen.com/i2085791/340c7eb48053a1e4.png)
比较两个工作区的 angular.json, 果然还是发现了一些区别:
![](https://img.haomeiwen.com/i2085791/e032185872382c06.png)
注意下列标注的差别:
![](https://img.haomeiwen.com/i2085791/dd59acb9a2f81bfc.png)
把 2 替换成 1 之后,又遇到如下的错误消息:
Cannot find module ng-packagr
![](https://img.haomeiwen.com/i2085791/9e54203ce0499348.png)
在我能够工作的仓库下的 ng version 输出:
![](https://img.haomeiwen.com/i2085791/f66fb2a435e274d4.png)
![](https://img.haomeiwen.com/i2085791/747458af373ee193.png)
而 Angular 官网:
![](https://img.haomeiwen.com/i2085791/3af2ca5ea0405d90.png)
做一个表格比较一下:
![](https://img.haomeiwen.com/i2085791/e85e6172e9fad265.png)
这一行: "ng-packagr": "^12.1.1",
官网的 package.json 没有。添加到官网项目的 package.json 之后,问题消失,build 成功:
![](https://img.haomeiwen.com/i2085791/0dcfdd9f48569cfb.png)
更多Jerry的原创文章,尽在:"汪子熙":
![](https://img.haomeiwen.com/i2085791/97c4752c0e619c44.png)
网友评论