软件包管理器
# 概念
包:将模块,代码,其他资料聚合成一个文件夹
包分类:
- 项目包:主要用于编写项目和业务逻辑
- 软件包:封装工具和方法进行使用
要求:根目录中,必须有 package.json 文件(记录包的清单信息)
注意:导入软件包时,引入的默认是 index.js 模块文件,没有则为 main 属性指定的模块文件
{
"name": "webpack-demo", // 软件包名称
"version": "1.0.0",
"description": "",
"main": "index.js", // 软件包入口 (类似于index.html)
"author": "NipGeihou",
"license": "MIT"
}
# 定义一个工具包
此处省略 arr.js、str.js 代码逻辑
index.js
const { getArraySum } = request('./lib/arr.js')
const {checkUser, checkPwd } = requst('./lib/str.js')
module.exports = {
getArraySum,
checkUser,
checkPwd
}
导入
const obj = requst('./utils') // 写软件包名
- 编写一个 util 包时,无论代码分散在包中的哪个位置,最终都需要导入到 index.js 文件中,再导出。
- 别人需要导入
# npm(Node.js 自带)
Node.js 默认的软件包管理器
# 初始化清单文件;没有package.json时执行
npm init -y
# 下载软件包
npm i <packageName>
# npm i dayjs
# node_modules文件夹:软件包源码
# package.json:记录了软件包
# package-lock.json:固化软件包版本
# 安装所有依赖,根据package.json
npm i
软件包区别:
本地软件包:当前项目内使用,封装属性和方法,存在于 node_modules
全局软件包:本机所有项目使用,封装命令和工具,存在于系统设置的位置
npm i <packageName> -g # -g 安装到全局环境
# npm i nodemon -g # 替代node命令,检测代码更改,自动重启程序
# nodemon xxx.js
# pnpm
# 特点
- 磁盘占用低(硬链接 + 全局 Store)
- 安装速度快
- Monorepo 支持极强
- 依赖隔离更严格(更容易发现 “幽灵依赖” 问题)
- 更适合 Docker / CI
- workspace 管理优秀
# 安装
# Node 16.13+ 已自带 Corepack。
corepack enable
corepack prepare pnpm@latest --activate
pnpm -v
# 使用
package.json
{
"packageManager": "[email protected]",
"engines": {
"node": ">=22"
}
}
# 安装普通依赖
pnpm add axios
# 安装开发依赖
pnpm add -D typescript
上次更新: 2026/05/14, 12:19:55