NPM 包管理器简介

目录

官方数据

npm 简介

安装所有依赖

安装单个包

更新包

版本控制

运行任务


官方数据

包量高达310w, 6月份的第三周下载量高达600亿,5月份下载量更是高达2473亿,这惊人的数字无外乎体现当今互联网的活跃程度和仍旧处于高速发展阶段。

# 2024 年 6 月 npm 数据统计
Packages
3,112,780

Downloads · Last Week
60,215,452,954

Downloads · Last Month
247,301,258,246

npm 简介

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

据官方数据,在 2024 年 6 月,npm 注册表中列出了超过 310 万个软件包,使其成为地球上最大的单一语言代码存储库,而且你可以阅读或使用几乎一切软件包。

它最初是作为一种下载和管理 Node.js 包依赖的方式,但后来成为前端 JavaScript 中也使用的工具。

yarn pnpm 是 npm cli 的替代品。 你也可以查看它们。

yarn官网:Home page | Yarn (yarnpkg.com)

pnpm官网:Fast, disk space efficient package manager | pnpm

npm 管理项目依赖的下载。

安装所有依赖

如果一个项目有一个 package.json 文件,通过运行

npm install

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

npm init

安装单个包

安装单个包

npm install <package-name>

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

通常你会看到更多的标志被添加到这个命令中:

  • --save-dev 安装并添加条目到 package.json 文件开发依赖
  • --no-save 安装但不添加条目到 package.json 文件依赖
  • --save-optional 安装并添加条目到 package.json 文件可选依赖
  • --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

规范与习惯

可能有细心的网友会发现我的写法是 npm install --save-dev <package-name> 

这两种写法都是可执行的,仅仅是个人的习惯。但是从官方示例来讲 npm install <package-name> --save-dev 更是推荐的写法 。

示例:

npm install sax
npm install githubname/reponame
npm install @myorg/privatepackage
npm install node-tap --save-dev
npm install dtrace-provider --save-optional
npm install readable-stream --save-exact
npm install ansi-regex --save-bundle

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vinca@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值