簡體   English   中英

盡管軟件包報告了相同的版本,但本地 npm package 和 repo 之間怎么能不匹配?

[英]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 通過他們的升級表格來確定升級項目需要采取的步驟:

https://update.angular.io/

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM