npm (Node Package Manager)
安装与更新
-
npm install
或npm i
:- 安装项目依赖 :根据
package.json
文件安装所有列出的依赖。 - 参数 :
-S, --save
:保存到dependencies
(默认行为)。-D, --save-dev
:保存到devDependencies
。-O, --save-optional
:保存到optionalDependencies
。--no-save
:不修改package.json
。--legacy-peer-deps
:忽略 peer dependencies 的冲突。--production
:只安装生产依赖(即不在devDependencies
中的包)。
- 使用场景:适用于首次安装或更新项目依赖。
- 安装项目依赖 :根据
-
npm install <package>
或npm i <package>
:- 安装指定包:安装一个特定的 npm 包。
- 参数 :
@<version>
:安装特定版本。--save-exact
:保存精确版本号。-g
:全局安装。
- 使用场景:适用于添加新依赖或安装特定版本的包。
-
npm update
:- 更新所有依赖 :更新所有依赖到最新版本(受限于
package.json
的版本范围)。 - 参数 :
--save
:保存更新后的版本到package.json
。
- 使用场景:适用于保持项目依赖为最新状态。
- 更新所有依赖 :更新所有依赖到最新版本(受限于
-
npm outdated
:- 列出可更新的包:显示当前已安装但有新版本可用的包及其版本信息。
- 使用场景:帮助开发者了解哪些包可以更新。
发布与管理包
-
npm publish
:- 发布包:将本地包发布到 npm 注册表。
- 参数 :
--access public|restricted
:设置包的访问权限。
- 使用场景:适用于发布新的包或更新现有包。
-
npm unpublish <package>@<version>
:- 移除包:从 npm 注册表中移除一个包的特定版本。
- 参数 :
--force
:强制移除。
- 使用场景:适用于删除不再需要的包版本。
-
npm deprecate <package> "message"
:- 废弃包:标记一个包为废弃并附带一条消息。
- 使用场景:适用于通知用户某个包不再维护或推荐替代方案。
管理全局包
-
npm install -g <package>
或npm i -g <package>
:- 全局安装:安装一个包到全局环境中。
- 使用场景:适用于安装 CLI 工具或其他需要全局访问的包。
-
npm uninstall -g <package>
:- 卸载全局包:从全局环境中移除一个包。
- 使用场景:适用于清理不再需要的全局包。
脚本与命令
-
npm run <script-name>
:- 运行脚本 :执行定义在
package.json
中的脚本。 - 使用场景:适用于执行构建、测试、部署等任务。
- 运行脚本 :执行定义在
-
npm start
:- 启动应用 :等同于
npm run start
。 - 使用场景:适用于启动应用程序。
- 启动应用 :等同于
-
npm test
:- 运行测试 :等同于
npm run test
。 - 使用场景:适用于执行测试套件。
- 运行测试 :等同于
-
npm exec <command>
或npx <command>
:- 临时执行命令:无需安装即可执行一个命令。
- 使用场景:适用于一次性使用某些工具或命令。
工具与信息
-
npm init
:- 初始化项目 :创建一个新的
package.json
文件。 - 参数 :
-y, --yes
:自动确认所有默认选项。
- 使用场景:适用于开始新项目。
- 初始化项目 :创建一个新的
-
npm audit
:- 安全审计:检查项目的依赖树中是否有已知的安全漏洞。
- 参数 :
--production
:只扫描生产依赖。
- 使用场景:适用于确保项目安全性。
-
npm view <package>
:- 查看包信息:显示 npm 注册表中包的详细信息。
- 使用场景:适用于获取包的元数据。
-
npm search <query>
:- 搜索包:在 npm 注册表中搜索包。
- 使用场景:适用于查找特定功能或名称的包。
-
npm outdated
:- 列出过时包:显示当前已安装但有新版本可用的包及其版本信息。
- 使用场景:帮助开发者了解哪些包可以更新。
-
npm ls <package>
:- 列出安装情况:显示指定包的安装情况。
- 使用场景:适用于检查特定包是否已安装。
-
npm list
:- 列出所有包:显示所有已安装的包。
- 使用场景:适用于查看当前项目的依赖结构。
其他
-
npm ci
:- 一致性安装 :严格按照
package-lock.json
安装依赖,适合 CI/CD 环境。 - 使用场景:确保构建环境的一致性。
- 一致性安装 :严格按照
-
npm cache clean --force
:- 清理缓存:清除 npm 缓存。
- 使用场景:解决缓存相关问题或释放磁盘空间。
-
npm link
:- 创建符号链接:方便本地开发和测试。
- 使用场景:适用于开发期间快速测试本地模块。
-
npm unlink
:- 删除符号链接 :移除通过
npm link
创建的链接。 - 使用场景:清理不再需要的符号链接。
- 删除符号链接 :移除通过
cnpm (China npm)
基础命令
-
cnpm install
或cnpm i
:- 安装项目依赖:基于中国的镜像源安装项目依赖。
- 使用场景:适用于国内开发者,加快下载速度。
-
cnpm install <package>
或cnpm i <package>
:- 安装指定包:基于中国的镜像源安装指定包。
- 使用场景:适用于国内开发者,加快下载速度。
-
cnpm update
:- 更新所有依赖:基于中国的镜像源更新所有依赖。
- 使用场景:适用于国内开发者,保持项目依赖为最新状态。
-
cnpm outdated
:- 列出可更新的包:基于中国的镜像源列出可更新的包。
- 使用场景:帮助国内开发者了解哪些包可以更新。
发布与管理包
-
cnpm publish
:- 发布包:基于中国的镜像源发布包。
- 使用场景:适用于国内开发者发布包到 npm 注册表。
-
cnpm unpublish <package>@<version>
:- 移除包:基于中国的镜像源移除包。
- 使用场景:适用于国内开发者移除不再需要的包版本。
管理全局包
-
cnpm install -g <package>
或cnpm i -g <package>
:- 全局安装:基于中国的镜像源全局安装包。
- 使用场景:适用于国内开发者安装 CLI 工具或其他需要全局访问的包。
-
cnpm uninstall -g <package>
:- 卸载全局包:基于中国的镜像源卸载全局包。
- 使用场景:适用于国内开发者清理不再需要的全局包。
脚本与命令
-
cnpm run <script-name>
:- 运行脚本 :基于中国的镜像源执行定义在
package.json
中的脚本。 - 使用场景:适用于国内开发者执行构建、测试、部署等任务。
- 运行脚本 :基于中国的镜像源执行定义在
-
cnpm start
:- 启动应用:基于中国的镜像源启动应用程序。
- 使用场景:适用于国内开发者启动应用程序。
-
cnpm test
:- 运行测试:基于中国的镜像源运行测试套件。
- 使用场景:适用于国内开发者执行测试。
工具与信息
-
cnpm init
:- 初始化项目 :基于中国的镜像源创建一个新的
package.json
文件。 - 使用场景:适用于国内开发者开始新项目。
- 初始化项目 :基于中国的镜像源创建一个新的
-
cnpm audit
:- 安全审计:基于中国的镜像源检查项目的依赖树中是否有已知的安全漏洞。
- 使用场景:适用于国内开发者确保项目安全性。
-
cnpm view <package>
:- 查看包信息:基于中国的镜像源显示 npm 注册表中包的详细信息。
- 使用场景:适用于国内开发者获取包的元数据。
-
cnpm search <query>
:- 搜索包:基于中国的镜像源在 npm 注册表中搜索包。
- 使用场景:适用于国内开发者查找特定功能或名称的包。
其他
-
cnpm ci
:- 一致性安装 :基于中国的镜像源严格按照
package-lock.json
安装依赖,适合 CI/CD 环境。 - 使用场景:确保国内开发者的构建环境一致性。
- 一致性安装 :基于中国的镜像源严格按照
-
cnpm cache clean
:- 清理缓存:基于中国的镜像源清除 npm 缓存。
- 使用场景:解决国内开发者的缓存相关问题或释放磁盘空间。
Yarn
安装与更新
-
yarn install
或yarn
:- 安装项目依赖 :根据
package.json
和yarn.lock
文件安装所有列出的依赖。 - 参数 :
--check-files
:检查文件完整性。--ignore-scripts
:忽略脚本。--frozen-lockfile
:严格遵循yarn.lock
。
- 使用场景:适用于首次安装或更新项目依赖。
- 安装项目依赖 :根据
-
yarn add <package>
:- 添加并安装指定包:安装一个特定的 npm 包。
- 参数 :
-D, --dev
:保存到devDependencies
。-P, --peer
:保存到peerDependencies
。-O, --optional
:保存到optionalDependencies
。--exact
:保存精确版本号。
- 使用场景:适用于添加新依赖或安装特定版本的包。
-
yarn upgrade
:- 更新所有依赖 :更新所有依赖到最新版本(受限于
package.json
的版本范围)。 - 参数 :
--latest
:升级到最新的稳定版。
- 使用场景:适用于保持项目依赖为最新状态。
- 更新所有依赖 :更新所有依赖到最新版本(受限于
-
yarn upgrade-interactive
:- 交互式更新:交互式选择要更新的包。
- 使用场景:适用于精细控制更新过程。
发布与管理包
-
yarn publish
:- 发布包:将本地包发布到 npm 注册表。
- 使用场景:适用于发布新的包或更新现有包。
-
yarn unpublish <package>@<version>
:- 移除包:从 npm 注册表中移除一个包的特定版本。
- 使用场景:适用于删除不再需要的包版本。
管理全局包
-
yarn global add <package>
:- 全局安装:安装一个包到全局环境中。
- 使用场景:适用于安装 CLI 工具或其他需要全局访问的包。
-
yarn global remove <package>
:- 卸载全局包:从全局环境中移除一个包。
- 使用场景:适用于清理不再需要的全局包。
脚本与命令
-
yarn run <script-name>
:- 运行脚本 :执行定义在
package.json
中的脚本。 - 使用场景:适用于执行构建、测试、部署等任务。
- 运行脚本 :执行定义在
-
yarn start
:- 启动应用 :等同于
yarn run start
。 - 使用场景:适用于启动应用程序。
- 启动应用 :等同于
-
yarn test
:- 运行测试 :等同于
yarn run test
。 - 使用场景:适用于执行测试套件。
- 运行测试 :等同于
工具与信息
-
yarn init
:- 初始化项目 :创建一个新的
package.json
文件。 - 使用场景:适用于开始新项目。
- 初始化项目 :创建一个新的
-
yarn audit
:- 安全审计:检查项目的依赖树中是否有已知的安全漏洞。
- 使用场景:适用于确保项目安全性。
-
yarn why <package>
:- 查找来源:查找特定包的来源。
- 使用场景:适用于理解为什么某些包会被安装。
-
yarn info <package>
:- 查看包信息:显示 npm 注册表中包的详细信息。
- 使用场景:适用于获取包的元数据。
-
yarn licenses generate-disclaimer
:- 生成许可证声明:生成许可证免责声明。
- 使用场景:适用于法律合规和许可管理。
-
yarn outdated
:- 列出过时包:显示当前已安装但有新版本可用的包及其版本信息。
- 使用场景:帮助开发者了解哪些包可以更新。
其他
-
yarn install --frozen-lockfile
:- 一致性安装 :严格按照
yarn.lock
安装依赖,适合 CI/CD 环境。 - 使用场景:确保构建环境的一致性。
- 一致性安装 :严格按照
-
yarn cache clean
:- 清理缓存:清除 yarn 缓存。
- 使用场景:解决缓存相关问题或释放磁盘空间。
-
yarn dlx <command>
:- 临时执行命令:无需安装即可执行一个命令。
- 使用场景:适用于一次性使用某些工具或命令。
pnpm
安装与更新
-
pnpm install
或pnpm i
:- 安装项目依赖 :根据
package.json
和pnpm-lock.yaml
文件安装所有列出的依赖。 - 参数 :
--prefer-offline
:优先使用缓存。--strict-peer-dependencies
:严格处理 peer dependencies。
- 使用场景:适用于首次安装或更新项目依赖。
- 安装项目依赖 :根据
-
pnpm add <package>
:- 添加并安装指定包:安装一个特定的 npm 包。
- 参数 :
-S, --save-prod
:保存到dependencies
。-D, --save-dev
:保存到devDependencies
。-O, --save-optional
:保存到optionalDependencies
。--save-exact
:保存精确版本号。
- 使用场景:适用于添加新依赖或安装特定版本的包。
-
pnpm update
:- 更新所有依赖 :更新所有依赖到最新版本(受限于
package.json
的版本范围)。 - 参数 :
--latest
:升级到最新的稳定版。
- 使用场景:适用于保持项目依赖为最新状态。
- 更新所有依赖 :更新所有依赖到最新版本(受限于
-
pnpm outdated
:- 列出可更新的包:显示当前已安装但有新版本可用的包及其版本信息。
- 使用场景:帮助开发者了解哪些包可以更新。
发布与管理包
-
pnpm publish
:- 发布包:将本地包发布到 npm 注册表。
- 使用场景:适用于发布新的包或更新现有包。
-
pnpm unpublish <package>@<version>
:- 移除包:从 npm 注册表中移除一个包的特定版本。
- 使用场景:适用于删除不再需要的包版本。
管理全局包
-
pnpm install -g <package>
或pnpm i -g <package>
:- 全局安装:安装一个包到全局环境中。
- 使用场景:适用于安装 CLI 工具或其他需要全局访问的包。
-
pnpm uninstall -g <package>
:- 卸载全局包:从全局环境中移除一个包。
- 使用场景:适用于清理不再需要的全局包。
脚本与命令
-
pnpm run <script-name>
:- 运行脚本 :执行定义在
package.json
中的脚本。 - 使用场景:适用于执行构建、测试、部署等任务。
- 运行脚本 :执行定义在
-
pnpm start
:- 启动应用 :等同于
pnpm run start
。 - 使用场景:适用于启动应用程序。
- 启动应用 :等同于
-
pnpm test
:- 运行测试 :等同于
pnpm run test
。 - 使用场景:适用于执行测试套件。
- 运行测试 :等同于
工具与信息
-
pnpm init
:- 初始化项目 :创建一个新的
package.json
文件。 - 使用场景:适用于开始新项目。
- 初始化项目 :创建一个新的
-
pnpm audit
:- 安全审计:检查项目的依赖树中是否有已知的安全漏洞。
- 使用场景:适用于确保项目安全性。
-
pnpm why <package>
:- 查找来源:查找特定包的来源。
- 使用场景:适用于理解为什么某些包会被安装。
-
pnpm info <package>
:- 查看包信息:显示 npm 注册表中包的详细信息。
- 使用场景:适用于获取包的元数据。
-
pnpm licenses
:- 管理许可证:管理许可证。
- 使用场景:适用于法律合规和许可管理。
-
pnpm outdated
:- 列出过时包:显示当前已安装但有新版本可用的包及其版本信息。
- 使用场景:帮助开发者了解哪些包可以更新。
其他
-
pnpm install --frozen-lockfile
:- 一致性安装 :严格按照
pnpm-lock.yaml
安装依赖,适合 CI/CD 环境。 - 使用场景:确保构建环境的一致性。
- 一致性安装 :严格按照
-
pnpm recursive <command>
:- 递归执行命令:在 monorepo 中递归执行命令。
- 使用场景:适用于多包仓库中的批量操作。
-
pnpm dlx <command>
:- 临时执行命令:无需安装即可执行一个命令。
- 使用场景:适用于一次性使用某些工具或命令。
-
pnpm cache clean
:- 清理缓存:清除 pnpm 缓存。
- 使用场景:解决缓存相关问题或释放磁盘空间。
-
pnpm link
:- 创建符号链接:方便本地开发和测试。
- 使用场景:适用于开发期间快速测试本地模块。
-
pnpm unlink
:- 删除符号链接 :移除通过
pnpm link
创建的链接。 - 使用场景:清理不再需要的符号链接。
- 删除符号链接 :移除通过
总结
每个工具的核心命令非常相似,但有一些细微的区别和各自特有的功能。以下是几个关键点:
- 锁文件 :
npm
使用package-lock.json
,Yarn
使用yarn.lock
,而pnpm
使用pnpm-lock.yaml
来锁定依赖版本。 - 安装速度 :
pnpm
由于其符号链接机制通常具有最快的安装速度,特别是在处理大型项目或 monorepo 时表现尤为突出。 - monorepo 支持 :
Yarn
和pnpm
提供了强大的多包仓库(monorepos)支持,方便管理和同步多个包之间的依赖关系。 - 国内网络优化 :
cnpm
对中国区开发者提供了更快的下载速度和更好的用户体验。