NPM 包管理器简介


快速指南:npm是一个功能强大的包管理器,是Node.js 成功的关键。据报道,截至 2017 年 1 月,npm 注册表中列出了超过 35 万个软件包,使其成为地球上最大的单一语言代码存储库。你可以肯定地说,几乎所有的东西都有一个(几乎!)与之对应的包。

npm 简介


npm 是 Node.js 的标准包管理器。

据报道,截至 2022 年 9 月,npm 注册表中列出了超过 210 万个软件包,使其成为地球上最大的单一语言代码存储库。你可以肯定地说,几乎所有的东西都有一个(几乎!)与之对应的包。

它最初作为下载和管理 Node.js 包依赖项的工具而开始,但后来也成为前端 JavaScript 中使用的工具。

Yarn 和 pnpm 是 npm 命令行的替代品。你也可以查看它们。

软件包
npm 管理着项目所需的所有依赖项的下载。

安装所有依赖项
如果项目中有一个 package.json 文件,通过运行以下命令:

npm install

它将会在 node_modules 文件夹中安装项目所需的所有内容,如果该文件夹尚不存在,则会创建它。

安装单个包
你也可以通过运行以下命令来安装特定的包:

npm install <package-name>

此外,自从 npm 5 版本开始,该命令将<package-name>添加到 package.json 文件的 dependencies 中。在 5 版本之前,你需要添加标志 --save

通常你会看到该命令添加了更多的标志:

--save-dev 安装并将条目添加到 package.json 文件的 devDependencies 中
--no-save 安装但不将条目添加到 package.json 文件的 dependencies 中
--save-optional 安装并将条目添加到 package.json 文件的 optionalDependencies 中
--no-optional 阻止安装可选依赖项
你也可以使用标志的简写形式:

-S: --save
-D: --save-dev
-O: --save-optional
devDependencies 和 dependencies 的区别在于前者包含开发工具,如测试库,而后者是在生产环境中与应用程序捆绑在一起的。

至于 optionalDependencies,区别在于依赖项的构建失败不会导致安装失败。但是你的程序有责任处理缺少的依赖项。

更新软件包
通过运行以下命令,更新也变得简单:

npm update

npm 将检查所有软件包是否有满足你版本约束的更新版本。

你也可以指定要更新的单个软件包:

npm update <package-name>

版本控制
除了普通下载之外,npm 还管理版本控制,这样你可以指定任何特定版本的软件包,或者要求比你需要的版本更高或更低的版本。

很多时候你会发现一个库只与另一个库的主要版本兼容。

或者最新版本的库中的一个未修复的错误导致问题。

指定库的明确版本也有助于使整个团队在更新 package.json 文件之前使用相同的确切版本。

在所有这些情况下,版本控制非常有帮助,npm 遵循语义版本控制(semver)标准。

你可以通过运行以下命令来安装特定版本的软件包:

npm install <package-name>@<version>

运行任务
package.json 文件支持一种格式,用于指定可以通过以下方式运行的命令行任务:

npm run <task-name>

例如:

{
  "scripts": {
    "start-dev": "node lib/server-development",
    "start": "node lib/server-production"
  }
}

非常常见的用法是运行 Webpack:

{
  "scripts": {
    "watch": "webpack --watch --progress --colors --config webpack.conf.js",
    "dev": "webpack --progress --colors --config webpack.conf.js",
    "prod": "NODE_ENV=production webpack -p --config webpack.conf.js"
  }
}

因此,你可以通过运行以下命令来避免输入那些容易忘记或打错的长命令:

$ npm run watch
$ npm run dev
$ npm run prod

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值