npm 提供了多种命令来管理包和项目,掌握这些命令对于高效的 JavaScript 开发至关重要。
包管理命令
安装包
bash# 安装最新版本 npm install <package> # 安装特定版本 npm install <package>@<version> # 安装多个包 npm install <package1> <package2> <package3> # 安装为生产依赖 npm install <package> --save-prod npm install <package> -P # 安装为开发依赖 npm install <package> --save-dev npm install <package> -D # 安装为可选依赖 npm install <package> --save-optional npm install <package> -O # 安装为同伴依赖 npm install <package> --save-peer # 全局安装 npm install <package> --global npm install <package> -g # 精确安装版本 npm install <package> --save-exact npm install <package> -E # 强制重新安装 npm install <package> --force
更新包
bash# 更新所有包(遵循 package.json 中的范围) npm update # 更新特定包 npm update <package> # 更新到最新主版本 npm update <package> --latest # 检查过期的包 npm outdated # 检查特定包是否过期 npm outdated <package>
卸载包
bash# 卸载包 npm uninstall <package> # 卸载多个包 npm uninstall <package1> <package2> # 卸载全局包 npm uninstall <package> --global npm uninstall <package> -g # 卸载并从 package.json 中移除 npm uninstall <package> --save # 卸载开发依赖 npm uninstall <package> --save-dev
信息查询命令
查看包信息
bash# 查看包的基本信息 npm info <package> # 查看包的特定字段 npm info <package> version npm info <package> description npm info <package> author npm info <package> homepage # 查看包的所有版本 npm info <package> versions # 查看包的依赖 npm info <package> dependencies # 查看包的开发依赖 npm info <package> devDependencies # 查看包的同伴依赖 npm info <package> peerDependencies # 查看包的发布时间 npm info <package> time # 查看包的下载量 npm info <package> downloads # 查看包的维护者 npm info <package> maintainers # 查看包的关键词 npm info <package> keywords
查看已安装的包
bash# 查看所有已安装的包 npm list # 查看顶级依赖 npm list --depth=0 # 查看特定包 npm list <package> # 查看全局安装的包 npm list --global # 查看全局顶级依赖 npm list --global --depth=0 # 以 JSON 格式输出 npm list --json # 只显示生产依赖 npm list --production # 只显示开发依赖 npm list --dev # 显示包的大小 npm list --long
搜索包
bash# 搜索包 npm search <keyword> # 搜索并限制结果数量 npm search <keyword> --long # 以 JSON 格式搜索 npm search <keyword> --json # 搜索特定维护者的包 npm search <keyword> --author <author> # 搜索特定关键词的包 npm search <keyword> --keywords <keywords>
项目管理命令
初始化项目
bash# 初始化新项目(交互式) npm init # 使用默认值初始化 npm init -y npm init --yes # 使用特定配置初始化 npm init --scope=@mycompany # 创建特定类型的包 npm init react-app my-app npm init vue-app my-app
运行脚本
bash# 运行脚本 npm run <script> # 运行 start 脚本(简写) npm start # 运行 stop 脚本(简写) npm stop # 运行 test 脚本(简写) npm test # 运行 restart 脚本(简写) npm restart # 列出所有脚本 npm run # 传递参数给脚本 npm run <script> -- --arg1 --arg2 # 以静默模式运行 npm run <script> --silent npm run <script> -s
版本管理
bash# 更新补丁版本(1.0.0 -> 1.0.1) npm version patch # 更新次版本(1.0.0 -> 1.1.0) npm version minor # 更新主版本(1.0.0 -> 2.0.0) npm version major # 更新预发布版本 npm version prerelease npm version prerelease --preid beta npm version prerelease --preid alpha # 更新到特定版本 npm version 1.2.3 # 创建 Git 标签 npm version patch -m "Bump to version %s" # 不创建 Git 标签 npm version patch --no-git-tag-version
发布命令
发布包
bash# 发布包 npm publish # 发布特定标签 npm publish --tag beta npm publish --tag next # 发布为公开包(scoped 包) npm publish --access public # 发布为受限包(scoped 包) npm publish --access restricted # 发布特定目录 npm publish <directory> # 发布前运行测试 npm publish --dry-run # 发布并附带 provenance npm publish --provenance
取消发布
bash# 取消发布特定版本 npm unpublish <package>@<version> # 取消发布整个包(谨慎使用) npm unpublish <package> # 强制取消发布 npm unpublish <package>@<version> --force
废弃版本
bash# 废弃特定版本 npm deprecate <package>@<version> "This version is deprecated" # 废弃所有版本 npm deprecate <package> "This package is deprecated"
配置命令
查看配置
bash# 查看所有配置 npm config list # 查看特定配置 npm config get <key> # 查看用户配置 npm config list --user # 查看全局配置 npm config list --global # 查看项目配置 npm config list --project # 编辑配置文件 npm config edit # 查看配置文件位置 npm config get userconfig npm config get globalconfig
设置配置
bash# 设置配置 npm config set <key> <value> # 设置全局配置 npm config set <key> <value> --global # 删除配置 npm config delete <key> # 删除全局配置 npm config delete <key> --global
常用配置
bash# 设置 registry npm config set registry https://registry.npmmirror.com # 设置缓存目录 npm config set cache /path/to/cache # 设置前缀 npm config set prefix /usr/local # 设置日志级别 npm config set loglevel info # 设置代理 npm config set https-proxy http://proxy.example.com:8080 # 设置严格 SSL npm config set strict-ssl true # 设置保存前缀 npm config set save-prefix ^ # 设置精确保存 npm config set save-exact true
缓存命令
管理缓存
bash# 验证缓存 npm cache verify # 清理缓存 npm cache clean # 强制清理缓存 npm cache clean --force # 添加到缓存 npm cache add <package>@<version> # 查看缓存目录 npm config get cache
安全命令
安全审计
bash# 运行安全审计 npm audit # 显示审计结果的 JSON 格式 npm audit --json # 只审计生产依赖 npm audit --production # 只审计开发依赖 npm audit --dev # 自动修复漏洞 npm audit fix # 强制修复漏洞 npm audit fix --force # 只修复生产依赖的漏洞 npm audit fix --production # 显示漏洞详情 npm audit --audit-level=low npm audit --audit-level=moderate npm audit --audit-level=high npm audit --audit-level=critical
高级命令
工作区命令
bash# 在所有工作区中运行命令 npm run <script> -ws npm run <script> --workspaces # 在特定工作区中运行命令 npm run <script> --workspace=<workspace> # 安装到所有工作区 npm install -ws # 添加到特定工作区 npm add <package> --workspace=<workspace>
执行命令
bash# 执行包中的二进制文件 npm exec <package> # 执行特定包 npm exec --package=<package> <command> # 等同于 npx npx <package> # 执行并传递参数 npx <package> --arg1 --arg2 # 使用特定版本 npx <package>@<version> # 忽略本地安装 npx --ignore-existing <package> # 使用缓存 npx --yes <package> npx -y <package>
查询命令
bash# 查询依赖 npm query ":root" # 查询所有过期的包 npm query ":outdated" # 查询所有开发依赖 npm query ":dev" # 查询特定包的依赖 npm query "lodash > *" # 查询特定路径的包 npm query "#./packages/*"
差异命令
bash# 比较当前安装与 package.json npm diff # 比较特定包 npm diff <package> # 比较两个版本 npm diff <package>@1.0.0 <package>@2.0.0 # 比较与 git 的差异 npm diff --git
其他有用命令
资金命令
bash# 查看项目的资金来源 npm fund # 查看特定包的资金来源 npm fund <package> # 打开资金链接 npm fund --which=<package>
组织命令
bash# 创建组织 npm org create <organization> # 添加成员 npm org add <user> <organization> # 移除成员 npm org rm <user> <organization> # 列出成员 npm org ls <organization> # 设置角色 npm org set <user> <role> <organization>
访问命令
bash# 设置包访问权限 npm access public <package> # 设置包为受限访问 npm access restricted <package> # 添加包的协作者 npm access add <user> <package> # 移除包的协作者 npm access rm <user> <package> # 列出包的协作者 npm access ls <package> # 查看包的访问权限 npm access status <package>
登录和注销
bash# 登录 npm login npm adduser # 注销 npm logout # 查看当前用户 npm whoami # 查看用户信息 npm profile get # 更新用户信息 npm profile set <key> <value> # 更改密码 npm profile set password
团队命令
bash# 创建团队 npm team create <team> <organization> # 添加成员到团队 npm team add <user> <team> # 从团队移除成员 npm team rm <user> <team> # 列出团队成员 npm team ls <team> # 删除团队 npm team destroy <team>
最佳实践
1. 使用 npm ci 替代 npm install
bash# CI 环境使用 npm ci npm ci
2. 使用精确版本
bash# 生产环境使用精确版本 npm install <package> --save-exact
3. 定期更新依赖
bash# 检查过期包 npm outdated # 更新包 npm update
4. 定期运行安全审计
bash# 运行安全审计 npm audit # 修复漏洞 npm audit fix
5. 使用 .npmrc 配置
bash# 项目级配置 echo "registry=https://registry.npmmirror.com" > .npmrc
掌握这些 npm 命令可以显著提高开发效率和项目管理能力。