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