奇怪的NPM安装

问题描述 投票:0回答:1

我是 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 不同,尽管它尝试做一些相同的事情。

node.js angular maven npm
1个回答
0
投票

首先,你错过了命令中的一些内容:

$ npm -v @angular/core

它并不像你写的那样存在。您得到的结果与

npm -v
相同,它返回本地
npm
的版本:6.4.18.

然后,有关对等依赖项的警告表明指定的模块是为特定版本的 Angular 开发的。

使用不同版本时可能会遇到运行时问题。通常相关的依赖项都有一个较新的版本,该版本与 Angular 的最新版本兼容。

一些阅读:

© www.soinside.com 2019 - 2024. All rights reserved.