【问题标题】:npm outdated output colour-coding meaningnpm 过时的输出颜色编码含义
【发布时间】:2015-10-12 02:34:57
【问题描述】:

我在 Mac 上的 bash 中运行 git 命令 npm outdated。

查看下图中的输出。

有谁知道为什么前四个包裹都印成红色?

我猜是因为我的 package.json 中有它们指向 github 存储库,但为什么是红色的?

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

谢谢。

【问题讨论】:

  • 对于未指向 git 的包,我也会得到红色输出(即正常的 npm 目标:!screenshot。npm 文档中仍然没有解释颜色的含义。跨度>
  • npm cli 上有一个新问题,可能有一天会得到官方的答复:github.com/npm/npm/issues/16224

标签: node.js git bash npm


【解决方案1】:

在依赖 Github 托管的包时必须小心:如果你只是指向一个包的 master 分支(这是添加此类依赖项时的默认值),你可以得到各种当该分支被更新并且它要么不起作用(它发生)或者它破坏了向后兼容性(这也发生)时,就会出现麻烦。

我想这就是npm 想要告诉你的。

FWIW,当您处理 Github 托管的依赖项时,您应该始终为特定的提交/标签/sha 包含一个标识符。有关更多文档,请参阅this。虽然我怀疑npm 不会也将这些 URL 标记为红色,因为这些标识符中的任何一个仍有可能失效。

编辑:也许不完全。

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

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

【讨论】:

  • 有道理,谢谢。我仍然无法在 npm 文档中找到对颜色的明确解释。
  • @Ursus 看到我的编辑,它可能比我最初想象的要微妙 :-)
【解决方案2】:

由于 SemVer ^x.y.z 插入符号格式,红色清楚地表明软件包已过期,需要升级。黄色的表示软件包也已过期,但要升级,可能会有重大变化......

所有红色的包都应该先升级,再升级黄色的包,因为有可能发生重大变化。

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

【讨论】:

    【解决方案3】:

    https://docs.npmjs.com/cli-commands/outdated.html

    1. 红色表示有更新的版本符合您的 semver 要求,因此您应该立即更新。
    2. 黄色表示存在高于您的 semver 要求的较新版本(通常是新的主要版本或新的 0.x 次要版本),因此请谨慎操作。

    【讨论】:

      【解决方案4】:

      更新 - 截至 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
      
      ...
      

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

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

      希望有帮助

      【讨论】:

        猜你喜欢
        • 2012-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-10
        相关资源
        最近更新 更多