Node.js npm过时输出颜色编码含义

Node.js npm过时输出颜色编码含义,node.js,git,bash,npm,Node.js,Git,Bash,Npm,我在mac上的bash中运行git命令npm 请参见下图中的输出 有人知道前四个包裹为什么用红色印刷吗 我猜这是因为我的package.json中有指向github repos的文件,但为什么是红色的呢 这是警告吗?我应该担心吗 多谢各位 在依赖Github托管的包时,必须小心:如果您只是指向包的主分支(这是添加此类依赖项时的默认分支),那么当该分支被更新且不起作用时,您可能会遇到各种各样的麻烦(这种情况经常发生)或者它破坏了向后兼容性(这种情况也会发生) 我想这就是npm想告诉你的 FWIW,

我在mac上的bash中运行git命令
npm

请参见下图中的输出

有人知道前四个包裹为什么用红色印刷吗

我猜这是因为我的package.json中有指向github repos的文件,但为什么是红色的呢

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

多谢各位


在依赖Github托管的包时,必须小心:如果您只是指向包的
主分支(这是添加此类依赖项时的默认分支),那么当该分支被更新且不起作用时,您可能会遇到各种各样的麻烦(这种情况经常发生)或者它破坏了向后兼容性(这种情况也会发生)

我想这就是npm想告诉你的

FWIW,在处理Github托管的依赖项时,应该始终为特定的commit/tag/sha包含一个标识符。有关更多文档,请参阅。尽管我怀疑
npm
是否也会将这些URL标记为红色,因为这些标识符中的任何一个都有可能失效

编辑:可能不太清楚

再仔细看一下,如果安装的版本(semver-)与
package.json
中设置的所需版本不匹配,它将以红色显示包名。对于Github托管的包,这些包可能永远不会匹配,因此为红色

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

由于SemVer ^x.y.z插入符号格式,红色明显表示软件包已过时,需要升级。黄色的表示软件包也过时了,但要升级,可能会有突破性的变化

所有红色的软件包都应该先升级,然后升级黄色的软件包,因为可能会中断更改

更新-自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

...
>纱线过时
第1.13.0版
信息颜色图例:
“”:主要更新向后不兼容的更新
“”:次要更新向后兼容的功能
“”:修补程序更新向后兼容的错误修复
...
请读这些小字母。。。红色是向后不兼容的 Npm遵循相同的颜色语义

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

希望有帮助

  • 红色表示有一个新版本符合您的semver要求,因此您应该立即更新
  • 黄色表示有一个较新的版本高于您的semver要求(通常是新的大调或新的0.x小调),因此请谨慎行事

  • 这很有道理,谢谢。我仍然找不到npm文档中颜色的清晰解释。@Ursus请看我的编辑,它可能比我最初认为的要微妙一些:-)对于没有指向git的包,我也会得到红色的输出(即,正常npm目标:!。npm文档中仍然没有解释颜色的含义。npm cli上有一个新问题,这可能会导致有一天给出正式答案: