npm过时的输出颜色编码含义

U r*_*u s 15 git bash node.js npm

npm outdated在mac上用bash 运行git命令.

请参见下图中的输出.

有谁知道为什么前四个包用红色打印?

我想这是因为我让他们指向我的package.json中的github repos,但为什么红色呢?

这是警告吗?我应该担心吗?

谢谢.

在此输入图像描述

小智 14

https://docs.npmjs.com/cli/v8/commands/npm-outdated#description

\n
\n
    \n
  1. 红色表示\xe2\x80\x99s 有一个较新的版本符合您的 semver 要求,因此您应该立即更新。
  2. \n
  3. 黄色表示\xe2\x80\x99s 有高于您的 semver 要求的较新版本(通常是新的主要版本,或新的 0.x 小版本),因此请谨慎操作。
  4. \n
\n
\n


rob*_*lep 12

在依赖于Github托管的软件包时你必须要小心:如果你只是指向master软件包的分支(这是添加这些依赖项时的默认软件包),那么当分支是这样的时候,你会遇到各种各样的麻烦.更新,它要么不起作用(它发生),要么打破向后兼容性(也会发生).

我想这就是npm试图告诉你的.

FWIW,当你处理Github托管的依赖项时,你应该总是在特定的commit/tag/sha中包含一个标识符.有关更多文档,请参阅虽然我怀疑这npm也不会将这些URL标记为红色,因为任何这些标识符仍然可能无效.

编辑:也许不完全.

仔细看一下它,如果安装的版本没有(semver-)匹配所设置的版本,它将显示红色的包名称package.json.在Github托管包的情况下,这些可能永远不会匹配,因此是红色.

当安装的版本与所需版本匹配时使用黄色,但NPM存储库中有更新版本.


小智 10

由于 SemVer ^xyz 插入符号格式,红色明确表示软件包已过期,需要升级。黄色表示软件包也已过时,但要升级,可能会有重大更改....

所有红色的包都应该先升级,然后再升级黄色的,因为有可能破坏更改。

https://realguess.net/2014/12/13/update-outdated-npm-packages/


Mul*_*lli 7

更新 - 截至 2019 年 2 月 27 日,我遇到了同样的问题,转移到纱线并得到以下信息:

> yarn outdated
yarn outdated v1.13.0
info Color legend :
 "<red>"    : Major Update backward-incompatible updates
 "<yellow>" : Minor Update backward-compatible features
 "<green>"  : Patch Update backward-compatible bug fixes

...
Run Code Online (Sandbox Code Playgroud)

请阅读小写字母...红色是向后不兼容的 Npm 遵循相同的颜色语义。

与上面的答案不同,所有过时的软件包都可以更新。这是一个项目特定的升级政策决定。

希望有帮助