npm和npx区分

文章类型:node

发布者:hp

发布时间:2025-05-11

一:引言

二:类别

(一)NPM

   1:定义: ‌包管理工具‌,用于安装、管理、发布 Node.js 包,并维护项目依赖关系‌

   2:安装方式:支持本地安装(项目专用)和全局安装(系统级工具)‌

   3:特点

       显示安装=>需通过 npm install 安装包后才能使用‌

       依赖管理=>通过 package.json 记录版本,支持版本锁定‌

       脚本执行=>需在 package.json 的 scripts 字段中定义命令,通过 npm run 执行‌

(二)NPX

   1:定义: ‌ ‌包执行工具‌,用于直接运行包中的可执行文件,无需预先全局或本地安装‌

   2:安装方式:优先查找本地依赖,若无则临时下载并执行,完成后自动清理缓存‌

   3:特点

       免安装执行=>可直接运行未安装的包

       版本控制=>支持指定版本运行

       路径优先级=>先查找本地 node_modules/.bin,再全局依赖,最后远程下载‌

三:使用规则

1:NPM

   管理依赖:使用 npm 来安装、更新和删除项目依赖。

   运行项目特定的脚本:在 package.json 中定义并量身定制。

   管理包版本:锁定特定版本的库以保持项目一致性

2:NPX

   一次性包执行:使用 npx 运行你不想全局安装的包,例如仅使用一次的 CLI 工具。

   运行可执行文件:对于像 create-react-app 这样的命令,使用 npx 可以在不全局安装的情况下运行。

   测试不同版本:快速执行特定版本的工具,无需安装

四:区别

1:包的安装和执行上

npm=>需要先安装

npm install -g create-react-app
create-react-app my-app

npx=>

npx create-react-app my-app

2:全局包

npm=>

npm install -g typescript
tsc --version

npx=>

npx tsc --version

3:自动包处理

npx=>会自动检查该包是否在本地或全局存在,如果不存在,则临时下载并执行

npx cowsay "Hello, World!"


4:无需脚本的包可执行文件

npm=>

npm run my-script

npx=>

npx my-script

五:总结

1:npm 侧重依赖管理‌,而 ‌npx 侧重便捷执行