npm 包管理器
JavaScript 生态的包管理工具。
npm
这一课你将能做到
- 用 npm 安装、卸载、更新第三方包
- 理解 package.json、package-lock.json 的作用
- 发布自己的 npm 包
为什么要学
现代前端/Node.js 开发离不开第三方库。React、Express、Lodash 这些都是通过 npm 安装的。npm 是 Node.js 的包管理器,也是全球最大的软件仓库(超过 200 万个包)。
人话:npm 是「应用商店」,你需要的工具都能在这里找到。
先建立图像
你的项目
├── node_modules/ # 第三方包安装目录
├── package.json # 项目配置 + 依赖清单
├── package-lock.json # 锁定版本,确保团队一致
└── index.js # 你的代码,require('xxx')
跟着做
步骤 1:初始化项目
# 创建项目目录
mkdir myapp
cd myapp
# 初始化 package.json(交互式)
npm init
# 一键初始化(全部默认)
npm init -y
生成的 package.json:
{
"name": "myapp",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
步骤 2:安装依赖
# 安装生产依赖(dependencies)
npm install express
npm install express lodash axios # 一次装多个
# 安装开发依赖(devDependencies)
npm install --save-dev jest
npm install -D jest # 简写
# 安装指定版本
npm install lodash@4.17.20
# 安装最新版本
npm install lodash@latest
# 全局安装(命令行工具)
npm install -g nodemon
npm install -g pm2
步骤 3:package.json 详解
{
"name": "myapp",
"version": "1.0.0",
"description": "My awesome app",
"main": "index.js",
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"test": "jest",
"build": "webpack --mode production"
},
"dependencies": {
"express": "^4.18.2",
"lodash": "~4.17.21"
},
"devDependencies": {
"jest": "^29.0.0",
"nodemon": "^2.0.20"
},
"engines": {
"node": ">=16.0.0"
}
}
步骤 4:版本号语义(Semver)
版本号格式:主版本.次版本.修订号
例如:4.17.21
主版本(Major):不兼容的 API 变更
次版本(Minor):向下兼容的新功能
修订号(Patch):向下兼容的 bug 修复
符号:
^4.18.2 兼容 4.x.x 最新版(4.18.2 到 <5.0.0)
~4.17.21 兼容 4.17.x 最新版(4.17.21 到 <4.18.0)
4.17.21 精确匹配 4.17.21
* 最新版(不推荐)
步骤 5:常用命令
# 查看已安装包
npm list # 本地包
npm list -g --depth=0 # 全局包
# 查看包信息
npm info lodash # 查看 lodash 信息
npm info lodash versions # 查看所有版本
# 更新包
npm update # 更新所有
npm update lodash # 更新指定包
npm outdated # 查看过时的包
# 卸载
npm uninstall lodash
npm uninstall -g nodemon
# 清除缓存
npm cache clean --force
# 运行脚本
npm run dev # 运行 scripts.dev
npm test # 运行 scripts.test
npm start # 运行 scripts.start