[英]How can you have a mismatch between a local npm package and repo though the packages report same version?
我剛剛更新了 Angular 8.2.4 -> 9.1.6 和 Typescript 3.4 -> 3.8.3 使用
ng update @angular/cli @angular/core
我有一些模塊導入現在正在中斷。 如果我降級到 Typescript 3.7,它們就可以工作,但對於特定的 package,我需要 3.8。
我在這里研究的特定模塊導入錯誤:
Module not found: Error: Can't resolve 'zlib' in '<project>/pangeav4/node_modules/request'
'npm ls request' 顯示請求正在 Angular 9.1.6 的依賴項中使用。
├─┬ @angular-devkit/build-angular@0.901.6
│ └─┬ less@3.11.1
│ └── request@2.88.2
├─┬ @angular/cli@9.1.6
│ └─┬ universal-analytics@0.4.20
│ └── request@2.88.2 deduped
如果我 go 到我的本地 node_module/@angular_devkit/build-angular/package.json (v 0.901.6),我看到 ZEFE90A8E604A7C840E88D03A67F6 沒有“無”
但是,在 @angular_devkit/build-angular (v 0.901.6) 的 github 的 package.json 中,less 不包括在內。
如果版本相同,我的本地副本怎么會與 github 不同?
我試過刪除 package-lock 和 node_modules 並重新安裝。
我創建了一個新的 angular 項目,由於全局 cli,該項目默認為 v8。 我認為問題一定是全局和本地 cli 之間的不匹配(盡管 ng 更新仍在繼續,只是注意到它正在使用臨時構建進行安裝)。 我將全局 cli 更新為 9 並創建了一個沒有問題的新項目。
一旦我從現有項目中添加了依賴項,問題就回來了。 但是,從 package.json 中刪除這些依賴項、刪除節點模塊和鎖並重新安裝並不能修復新項目。
除了 package-lock.json 之外,還有其他東西保留了安裝命令,因為 package 搞砸了?
Angular 版本信息:
Angular CLI: 9.1.6
Node: 10.18.0
OS: darwin x64
Angular: 9.1.9
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router, service-worker
Ivy Workspace: No
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.801.3
@angular-devkit/build-angular 0.901.6
@angular-devkit/build-optimizer 0.901.6
@angular-devkit/build-webpack 0.901.6
@angular-devkit/core 9.1.6
@angular-devkit/schematics 9.1.6
@angular/cdk 9.2.4
@angular/cli 9.1.6
@angular/fire 5.4.2
@angular/material 9.2.4
@ngtools/webpack 9.1.6
@schematics/angular 9.1.6
@schematics/update 0.901.6
rxjs 6.5.5
typescript 3.8.3
webpack 4.43.0
聽起來,您可能已經手動安裝了 TypeScript 並弄亂了一些依賴關系樹。 我會嘗試恢復您的更改並通過ng update
運行升級。 FWIW,我的 9.1 項目有"typescript": "3.7.5"
當您運行ng update
時,它會為您提供摘要,然后您必須開始一一進行並升級。 通常你必須做的第一件事就是運行:
ng update @angular/cli @angular/core
。 您不想在此處指定任何版本,除非您的目標是特定的。 默認情況下它將獲取最新版本。
另一個很好的故障排除步驟是 go 通過他們的升級表格來確定升級項目需要采取的步驟:
Angular CLI: 9.1.4
Node: 10.16.2
OS: darwin x64
Angular: 9.1.0
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... platform-server, router
Ivy Workspace: Yes
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.900.7
@angular-devkit/build-angular 0.900.7
@angular-devkit/build-optimizer 0.900.7
@angular-devkit/build-webpack 0.900.7
@angular-devkit/core 9.0.7
@angular-devkit/schematics 9.1.4
@angular/cdk 9.2.2
@angular/cli 9.1.4
@angular/material 9.2.2
@ngtools/webpack 9.0.7
@schematics/angular 9.1.4
@schematics/update 0.901.4
rxjs 6.5.5
typescript 3.7.5
webpack 4.41.2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.