NodeJS - npm

作者: 时光已翩然轻擦 | 来源:发表于2020-08-10 15:43 被阅读0次

npm

  • node package manager(node包管理工具)。

  • npmNode.js 标准的软件包管理器。

  • 它起初是作为下载和管理 Node.js 包依赖的方式,但其现在也已成为前端 JavaScript 中使用的工具。

  • 除了简单的下载外,npm 还可以管理版本控制,因此可以指定软件包的任何特定版本,或者要求版本高于或低于所需版本。

  • yarnnpm 的一个替代选择。

安装软件包

  • npm 可以管理项目依赖的下载。

一、安装所有依赖

如果项目具有 package.json 文件,则运行:

npm install

它会在 node_modules 文件夹(如果尚不存在则会创建)中安装项目所需的所有东西。

二、安装单个软件包

1. 全局安装:
// npm 不会将软件包安装到本地文件夹下,而是使用全局的位置。
npm install -g <package-name>

获取全局的位置:

npm root -g
2. 本地安装:

安装到当前文件树中的 node_modules 子文件夹下:

// npm 还会在当前文件夹中存在的 package.json 文件的 dependencies 属性中添加条目
npm install <package-name>
  • --save :安装并添加条目到 package.json 文件的 dependencies 对象中。
npm install <package-name> --save
// 或
npm install <package-name> -S
  • --save-dev :安装并添加条目到 package.json 文件的 devDependencies 对象中。
npm install <package-name> --save-dev
// 或
npm install <package-name> -D

三、更新软件包

1. 更新全部软件包:

npm 会检查所有软件包是否有满足版本限制的更新版本:

npm update
2. 更新指定单个软件包:
npm update <package-name>

四、卸载软件包

1. 全局卸载

如果该软件包是全局安装的,则需要添加 -g--global 标志:

npm uninstall -g <package-name>
2. 本地卸载

卸载之前在本地安装(在 node_modules 文件夹使用 npm install <package-name>)的软件包。

npm uninstall <package-name>

如果使用 -S 或 --save 标志,则此操作还会移除 package.json 文件中的引用。

npm uninstall -S <package-name>

如果程序包是开发依赖项(列出在 package.json 文件的 devDependencies 中),则必须使用 -D 或 --save-dev 标志从文件中移除

npm uninstall -D <package-name>

语义版本控制

一、概念

所有的版本都有 3 个数字:x.y.z。

  • 第一个数字是主版本。
  • 第二个数字是次版本。
  • 第三个数字是补丁版本。

当发布新的版本时,不仅仅是随心所欲地增加数字,还要遵循以下规则:

  • 当进行不兼容的 API 更改时,则升级主版本。
  • 当以向后兼容的方式添加功能时,则升级次版本。
  • 当进行向后兼容的缺陷修复时,则升级补丁版本。

该约定在所有编程语言中均被采用,每个 npm 软件包都必须遵守该约定,这一点非常重要,因为整个系统都依赖于此。

为什么这么重要?

因为 npm 设置了一些规则,可用于在 package.json 文件中选择要将软件包更新到的版本(当运行 npm update 时)。

二、规则

1.规则使用了这些符号:
  • ^:当运行 npm update 时,会更新到补丁版本和次版本。
  • ~:当运行 npm update 时,会更新到补丁版本。
  • >:接受高于指定版本的任何版本。
  • >=:接受等于或高于指定版本的任何版本。
  • <:接受低于指定版本的任何版本。
  • <=:接受等于或低于指定版本的任何版本。
  • =: 接受确切的版本。
  • -: 接受一定范围的版本。例如:2.1.0 - 2.6.2。
  • ||:组合集合。例如 < 2.1 || > 2.6。

可以合并其中的一些符号,例如 1.0.0 || >=1.1.0 <1.2.0,即使用 1.0.0 或从 1.1.0 开始但低于 1.2.0 的版本。

2.其他规则:
  • 无符号:仅接受指定的特定版本(例如 1.2.1)。
  • latest:使用可用的最新版本。

参考资料

相关文章

网友评论

    本文标题:NodeJS - npm

    本文链接:https://www.haomeiwen.com/subject/mfyorktx.html