[英]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.