【问题标题】:Does 'npm instal'l <package_name> install the latest version of a package or the latest compatible with the version of node installed?'npm instal'l <package_name> 是否安装最新版本的软件包或与安装的节点版本兼容的最新版本?
【发布时间】:2021-06-04 01:07:57
【问题描述】:

npm install 是否安装最新版本的包或与安装的节点版本兼容的最新版本?

这两种情况会发生什么?

案例 1: 目录中的节点版本为 10.16.0。 'npm install xyz' 会安装最新的 xyz 还是与 10.16.0 兼容的最新版本?

案例 2: 目录中的节点版本为 10.16.0 'npm install -g xyz' 会安装最新的 xyz 还是与全局安装的节点版本兼容的最新版本,还是会考虑 10.16.0?

【问题讨论】:

    标签: javascript node.js npm npm-install


    【解决方案1】:

    回答 最新版本 但是

    如果包已经安装在项目中或包含在 package.json 文件中,则版本字符串是 NPM 将尝试和使用的内容,其中可能包含一个 Caret(^),它告诉 npm 不要更新主要版本.

    更多信息请阅读下文

    除非手动指定,否则 Npm install 将始终安装软件包的最新完整版本版本(跳过-tag.x 版本),这可能与某些版本的节点不兼容。并非所有软件包都指定了它兼容的引擎,因此有时您必须进行一些挖掘或反复试验。

    您可以通过将@ 添加到包中来手动选择版本。

    例如,npm install xyz@10.16.0 将安装该特定软件包版本。您还可以在版本号前加上插入符号 (^) 以安装最新的 Minor 版本,或使用波浪号 (~) 指定最新的补丁版本。 例如 xyz@^1.2.0 可以安装 1.8.0,xyz@~1.2.0 可以安装 1.2.9,但从不安装 1.3.0

    有关版本控制字符串的更多信息,请阅读 Semantic Versioning aka SemVer

    https://github.com/npm/node-semver#versions

    【讨论】:

      【解决方案2】:

      我不确定你是否已经用 -g 标志安装了 xyz 它不会安装最新版本。

      try
      npm uninstall -g xyz 
      then 
      npm install xyz 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-11
        • 1970-01-01
        • 1970-01-01
        • 2015-11-22
        • 2019-01-04
        • 1970-01-01
        相关资源
        最近更新 更多