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对中国区开发者提供了更快的下载速度和更好的用户体验。