我是 Node 新手,发现自己需要升级我的包才能启用 Web Worker。我正在尝试将我的 Angular 从 6.x.x 升级到 7.x.x,然后升级到 8.x.x。当我尝试安装它声称可以工作的东西时,它却不起作用。
例如,当我跑步时:
~/projects-new/cirrus-bluecost-rules-client/client$ npm install --save @angular/[email protected]
npm WARN [email protected] requires a peer of @angular/common@^6.0.0-rc.0 || ^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of @angular/core@^6.0.0-rc.0 || ^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of @angular/compiler@>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of @angular/core@>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0 but none is installed. You must install peer dependencies yourself.
+ @angular/[email protected]
updated 1 package and audited 1513 packages in 36.23s
40 packages are looking for funding
run `npm fund` for details
found 103 vulnerabilities (8 low, 45 moderate, 48 high, 2 critical)
run `npm audit fix` to fix them, or `npm audit` for details
然后用
检查~/projects-new/cirrus-bluecost-rules-client/client$ npm -v @angular/core
6.14.8
那么为什么它声称可以工作(不给我错误),然后当我尝试检查版本时,它没有执行它声称的操作?
此外,在上面安装 core 的请求中,它表示需要 @angular/core@^6.0.0-rc.0 的对等点。:
npm WARN [email protected] requires a peer of @angular/core@^6.0.0-rc.0 || ^6.0.0 but none is installed. You must install peer dependencies yourself.
但是如果我检查 @angular/core package.json 文件:
~/projects-new/cirrus-bluecost-rules-client/client$ head node_modules/@angular/core/package.json
{
"_from": "@angular/[email protected]",
"_id": "@angular/[email protected]",
"_inBundle": false,
"_integrity": "sha512-z1RuBinuYeC4KLv8Z95YOgIQLd4nkoApdxkIZaWALwSkgeBuHJn4bCBn2cL0gJ/KO2x18TiTU5HuC+uyBt0AVQ==",
"_location": "/@angular/core",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
它说版本是7.2.16。
我不明白什么? 请注意,如果您熟悉 Maven,这对我来说更有意义。有一个包及其版本的扁平集合。没有包的嵌套,冗余也更少。我不完全理解 Node 依赖关系,但我知道它的工作方式与 Maven 不同,尽管它尝试做一些相同的事情。
首先,你错过了命令中的一些内容:
$ npm -v @angular/core
它并不像你写的那样存在。您得到的结果与
npm -v
相同,它返回本地 npm
的版本:6.4.18.
然后,有关对等依赖项的警告表明指定的模块是为特定版本的 Angular 开发的。
使用不同版本时可能会遇到运行时问题。通常相关的依赖项都有一个较新的版本,该版本与 Angular 的最新版本兼容。
一些阅读: