npm 完全使用教程(2025最新版)
本文档详细介绍 npm(Node Package Manager)的完整使用方法,从入门到高级特性,全部配有真实可运行的示例。
1. npm 是什么?
npm 是全球最大的 JavaScript 包管理系统,随 Node.js 一起安装。目前(2025年)最新版本为 npm 10.x(Node.js 20+ 自带)或 npm 11.x(Node.js 22+)。
官方网站:https://www.npmjs.com
官方文档:https://docs.npmjs.com
2. 初始化项目
# 创建项目文件夹
mkdir my-project
cd my-project
# 初始化 package.json(推荐交互式)
npm init
# 快速初始化(使用默认值)
npm init -y # 或 npm init --yes
生成的 package.json 示例:
{
"name": "my-project",
"version": "1.0.0",
"description": "一个示例项目",
"main": "index.js",
"scripts": {
"start": "node index.js",
"dev": "node index.js"
},
"keywords": ["demo", "example"],
"author": "张三 <zhangsan@example.com>",
"license": "MIT"
}
3. 安装包(重点)
3.1 本地安装(开发和生产依赖)
# 安装到 dependencies(生产环境需要)
npm install lodash
# 安装到 devDependencies(仅开发需要,如测试工具)
npm install jest --save-dev
# 或简写
npm install jest -D
# 安装特定版本
npm install lodash@4.17.21
# 安装最新主版本(^约束)
npm install express@latest
# 安装精确版本(锁死版本)
npm install axios@1.7.2 --save-exact
# 或使用配置自动加 ~
npm config set save-exact true
3.2 全局安装(命令行工具)
# 全局安装(如创建 React 项目工具)
npm install -g create-vite
npm install -g pnpm # 安装 pnpm
npm install -g serve # 静态服务器
4. 常用命令大全
| 命令 | 说明 | 示例 |
|---|---|---|
npm install 或 npm i | 安装 package.json 中所有依赖 | npm i |
npm ci | 干净安装(用于 CI/CD,严格按 lock 文件) | npm ci |
npm install <pkg> | 安装包并保存到 dependencies | npm i lodash |
npm install <pkg> -D | 安装到 devDependencies | npm i -D jest |
npm uninstall <pkg> | 卸载包 | npm uninstall lodash |
npm update | 更新所有依赖到允许的最新版本 | npm update |
npm update <pkg> | 更新指定包 | npm update express |
npm outdated | 查看有哪些包可以更新 | npm outdated |
npm list 或 npm ls | 查看已安装的依赖树 | npm ls |
npm run <script> | 运行 scripts 中定义的命令 | npm run dev |
npm exec <cmd> 或 npx | 临时执行包中的命令 | npx create-vite@latest my-app |
5. scripts 脚本使用(非常重要)
在 package.json 中定义:
{
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview",
"test": "jest",
"lint": "eslint src --ext .js,.ts,.vue",
"format": "prettier --write .",
"start": "node server.js",
"prepare": "husky install" // git hooks
}
}
常用组合脚本示例:
{
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview",
"build:prod": "vite build --mode production",
"lint:fix": "eslint src --fix",
"type-check": "vue-tsc --noEmit",
"test": "jest",
"test:watch": "jest --watch",
"clean": "rimraf dist node_modules/.cache"
}
}
执行方式:
npm run dev
npm test
npm run build
6. npx 的强大用法
npx 是 npm 5.2+ 自带的临时执行工具,无需全局安装。
# 创建项目(最常用)
npx create-react-app my-app
npx create-vite@latest my-vue-app -- --template vue-ts
npx create-next-app@latest
# 临时运行某个工具
npx cowsay "Hello npm!"
npx tsc --init
npx eslint --init
# 执行本地项目中的命令(推荐替代 ./node_modules/.bin/xxx)
npx vite
npx jest --version
7. package-lock.json 和 npm shrinkwrap
package-lock.json:自动生成,记录实际安装的完整依赖树和版本- 永远提交到 git!确保团队和 CI 环境一致
npm ci只会读取 lock 文件,速度更快、更严格
8. 发布自己的包到 npm
步骤1:注册账号
步骤2:登录终端
npm login
# 输入用户名、密码、邮箱
步骤3:准备包
确保 package.json 关键字段正确:
{
"name": "my-awesome-lib",
"version": "1.0.0",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"files": ["dist", "README.md"],
"publishConfig": {
"access": "public" // 组织作用域包用 "restricted"
}
}
步骤4:发布
npm publish
# 发布新版本(必须修改 version)
npm version patch # 1.0.0 → 1.0.1
npm version minor # 1.0.0 → 1.1.0
npm version major # 1.0.0 → 2.0.0
git push && git push --tags
npm publish
9. 常用配置(~/.npmrc 或项目 .npmrc)
# 设置国内镜像(加速下载)
registry=https://registry.npmmirror.com
# 或者使用官方淘宝镜像
registry=https://registry.npmjs.org/
# 精确安装(推荐)
save-exact=true
# 自动安装 peerDependencies(npm v7+)
auto-install-peers=true
# 严格使用 lock 文件
legacy-peer-deps=false
10. 推荐的最佳实践(2025)
# 1. 使用 npm ci 而不是 npm install(CI/CD)
npm ci
# 2. 使用 npx 替代全局安装
npx create-vite@latest
# 3. 使用 npm workspaces 管理 monorepo
# package.json
{
"workspaces": ["packages/*", "apps/*"]
}
# 4. 推荐使用 pnpm 或 bun(更快、更省磁盘)
# pnpm 安装:npm install -g pnpm
# bun 安装:curl -fsSL https://bun.sh/install | bash
结语
掌握以上内容,你已经完全精通 npm 的日常使用和高级特性了!
常用快捷命令速查:
npm i # 安装所有依赖
npm i lodash # 安装包
npm i -D vite # 开发依赖
npm run dev # 运行开发脚本
npx vite # 临时执行
npm outdated # 检查更新
npm update # 更新依赖
npm publish # 发布包