npx 执行本地 node_modules 里的命令为什么会报错? UX-瑞娜 提问于 2026-03-01 13:49:18 阅读 4 工具 我在项目里装了 TypeScript,想用 npx 调用本地的 tsc 编译代码,但每次运行 npx tsc 都提示找不到命令,明明 node_modules/.bin 里面有 tsc 啊? 我试过删除 node_modules 重装依赖,也确认 package.json 里有 typescript,但还是不行。是不是 npx 默认不会找本地的包?还是我哪里理解错了? 我来解答 赞 2 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 Newb.梓涵 Lv1 这个问题我之前也踩过坑!npx 默认是会先找本地 node_modules/.bin 的,所以你理解没错。问题可能出在几个地方,咱们一个个排查。 首先确认一下,你执行命令的时候是不是在项目根目录?npx 找本地包是根据当前工作目录来的,如果你跑到 src 目录里执行,那肯定找不到。 可以试试直接用相对路径调用,看看能不能跑: ./node_modules/.bin/tsc --version 如果这个能跑,说明包是装好的,问题出在 npx 那边。 另一个常见情况是命令行有缓存。试试加上 --no-install 参数,强制它只用本地包: npx --no-install tsc 这样 npx 就不会尝试去远程下载,如果本地没有会直接报错,方便你定位问题。 还有个我个人的建议,平时开发最好把常用命令写到 package.json 的 scripts 里,比如: "scripts": { "build": "tsc" } 然后直接 npm run build,npm 会自动把 node_modules/.bin 加到 PATH 里,省心很多,不用纠结 npx 的各种行为。 对了,如果你用的是 Windows,记得检查一下 node_modules/.bin 下面有没有 tsc.cmd 这个文件,Windows 下是靠这个执行的。 希望能帮到你!如果还是不行,把你跑的具体命令和报错信息贴出来,我再帮你看看。 回复 点赞 2026-03-01 14:13 加载更多 相关推荐 2 回答 24 浏览 StyleLint如何配置忽略node_modules和特定文件夹的检查? 我在项目里用了StyleLint做CSS检查,但每次运行都会报node_modules和dist目录的错误。试过在配置文件里加"ignoreFiles": ["node_modules/**"],但还... 卓尚 Dev 前端 2026-02-18 22:14:27 1 回答 49 浏览 ESLint的ignore文件怎么设置才能排除node_modules和特定HTML文件? 我在项目里配置了ESLint,但想排除node_modules和test.html文件,试过在.eslintrc.json里写ignorePatterns,结果node_modules还是被检查,te... シ耀择 工具 2026-02-02 13:38:39 2 回答 78 浏览 Jenkins构建React项目时node_modules未排除导致体积过大怎么办? 我在Jenkins构建React项目时发现生成的dist文件有几百MB,怀疑是node_modules被错误打包进去了。按照网上的方法在Jenkinsfile里加了排除项,但没效果... 我的Jenk... 百里凌薇 前端 2026-01-25 16:52:32 1 回答 27 浏览 为什么用JavaScript的AES加密后,Node.js解密时总报错? 我在前端用crypto-js做AES加密,后端用Node.js的crypto模块解密,但一直报错说密文无效。两边都用了同样的AES-256-CBC算法,密钥和iv也确保一致,测试代码如下: /* 这是... Prog.怡企 安全 2026-02-19 12:49:30 2 回答 74 浏览 为什么我的Node.js事件监听在第二次触发时不执行? 我在用Node.js的EventEmitter写一个消息队列处理模块,发现第一次触发事件时能正常执行监听函数,但第二次触发就完全没反应了。 代码大概是这样写的: const EventEmitter ... UP主~艳珂 前端 2026-01-29 21:39:38 1 回答 3 浏览 pnpm 安装依赖后为什么有些包在 node_modules 里找不到? 我最近从 yarn 切到 pnpm,执行 pnpm install 后发现一些依赖比如 lodash 在 node_modules 里直接搜不到,但项目又能正常运行。这是不是 pnpm 的硬链接机制导... 东方熙炫 工具 2026-03-02 01:42:20 1 回答 31 浏览 Docker容器运行Node.js应用时,为什么端口映射后访问不到页面? 大家好,我最近在尝试用Docker部署一个简单的Node.js应用,但遇到了端口映射的问题。应用在本地直接运行时能正常访问,但打包到Docker容器后,访问localhost:3000一直显示空白页面... Dev · 东芳 前端 2026-02-06 17:48:53 2 回答 43 浏览 为什么用npx create-react-app时提示command not found? 刚用yarn安装了最新版npm(8.19.2),想用npx create-react-app新建项目,结果报错command not found。之前用npm init react-app也试过,还是... 极客子璇 工具 2026-01-31 08:20:26 2 回答 50 浏览 Vite开发服务器如何代理API请求到本地Node.js后端? 我在用Vite开发前端时需要对接本地Node.js后端,按文档配置了vite.config.js的代理,但请求还是被跨域拦截。配置了: export default defineConfig({ se... Air-明月 工具 2026-01-29 10:23:30 1 回答 800 浏览 postcss-modules 生成的类名为什么没被正确替换? 我用 PostCSS 配合 postcss-modules 处理 CSS 模块,但打包后发现 JS 里引用的样式类名还是原始名称,没有被替换成哈希后的名字。比如我写的是 styles.containe... 博主艺诺 工具 2026-02-28 21:35:23
首先确认一下,你执行命令的时候是不是在项目根目录?npx 找本地包是根据当前工作目录来的,如果你跑到 src 目录里执行,那肯定找不到。
可以试试直接用相对路径调用,看看能不能跑:
如果这个能跑,说明包是装好的,问题出在 npx 那边。
另一个常见情况是命令行有缓存。试试加上
--no-install参数,强制它只用本地包:这样 npx 就不会尝试去远程下载,如果本地没有会直接报错,方便你定位问题。
还有个我个人的建议,平时开发最好把常用命令写到 package.json 的 scripts 里,比如:
然后直接
npm run build,npm 会自动把 node_modules/.bin 加到 PATH 里,省心很多,不用纠结 npx 的各种行为。对了,如果你用的是 Windows,记得检查一下 node_modules/.bin 下面有没有 tsc.cmd 这个文件,Windows 下是靠这个执行的。
希望能帮到你!如果还是不行,把你跑的具体命令和报错信息贴出来,我再帮你看看。