天天看點

解決 Angular 官網下載下傳的 library Schematics build 出錯的辦法

從 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

解決 Angular 官網下載下傳的 library Schematics build 出錯的辦法

npm install 之後,問題依舊:

解決 Angular 官網下載下傳的 library Schematics build 出錯的辦法

然而,我自己的 lib github repo 沒有這個問題:

https://github.com/wangzixi-diablo/angular-monorepo

ng build my-lib 很順利:

解決 Angular 官網下載下傳的 library Schematics build 出錯的辦法

比較兩個工作區的 angular.json, 果然還是發現了一些差別:

解決 Angular 官網下載下傳的 library Schematics build 出錯的辦法

注意下列标注的差别:

解決 Angular 官網下載下傳的 library Schematics build 出錯的辦法

把 2 替換成 1 之後,又遇到如下的錯誤消息:

Cannot find module ng-packagr

解決 Angular 官網下載下傳的 library Schematics build 出錯的辦法

在我能夠工作的倉庫下的 ng version 輸出:

解決 Angular 官網下載下傳的 library Schematics build 出錯的辦法
解決 Angular 官網下載下傳的 library Schematics build 出錯的辦法

而 Angular 官網:

解決 Angular 官網下載下傳的 library Schematics build 出錯的辦法

做一個表格比較一下:

解決 Angular 官網下載下傳的 library Schematics build 出錯的辦法

這一行: “ng-packagr”: “^12.1.1”,

官網的 package.json 沒有。添加到官網項目的 package.json 之後,問題消失,build 成功:

解決 Angular 官網下載下傳的 library Schematics build 出錯的辦法

繼續閱讀