第二篇:npx 到底是怎么工作的?搞懂 node_modules/.bin

举报
yd_220371319 发表于 2026/08/30 11:18:02 2026/08/30
【摘要】 npx 到底是怎么工作的?搞懂 node_modules/.bin上一篇我们知道了 npx 可以执行 npm 包。但还有一个问题:npx 到底是怎么找到这些程序的?答案和一个非常重要的目录有关:node_modules/.bin/什么是 node_modules/.bin?例如安装 Vite:npm install -D vite项目中会出现:node_modules/├── .bin/│ ...

npx 到底是怎么工作的?搞懂 node_modules/.bin

上一篇我们知道了 npx 可以执行 npm 包。

但还有一个问题:

npx 到底是怎么找到这些程序的?

答案和一个非常重要的目录有关:

node_modules/.bin/

什么是 node_modules/.bin?

例如安装 Vite:

npm install -D vite

项目中会出现:

node_modules/
├── .bin/
│   └── vite
└── vite/

其中 .bin 目录存放了依赖包提供的命令行入口。

因此执行:

npx vite

时,npx 可以找到当前项目中的:

node_modules/.bin/vite

然后执行它。

为什么不直接执行?

当然可以直接执行:

./node_modules/.bin/vite

但这样非常麻烦。

所以 npx 帮我们处理了命令查找。

npx vite
   ↓
查找项目依赖
   ↓
node_modules/.bin/vite
   ↓
执行 Vite

这也是为什么不推荐全部全局安装

如果工具安装在项目中:

npm install -D eslint

就可以:

npx eslint .

项目自己管理工具版本,不依赖系统全局环境。

这对于团队协作尤其重要。

package.json 的作用

项目通常会记录:

{
  "devDependencies": {
    "typescript": "^5.4.5"
  }
}

其他开发者执行:

npm install

之后,就可以:

npx tsc

使用项目要求的工具。

总结

npx 最核心的工作之一,就是帮助我们方便地找到:

node_modules/.bin/

中的 CLI 程序。

理解这一点,也就理解了为什么 npx xxx 可以直接运行项目依赖。

下一篇我们来看看 npx 最常见的实际用途:创建项目、运行工具以及指定版本。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。