首页 > 解决方案 > npx 运行我的机器上不存在的节点版本

问题描述

我尝试运行此命令npx create-react-app my-app并收到此错误

error @typescript-eslint/eslint-plugin@4.5.0: The engine "node" is incompatible with this module. Expected version "^10.12.0 || >=12.0.0". Got "11.13.0"
error Found incompatible module.

奇怪的是我使用了节点版本 15.0.1(最新)和纱线版本 1.22.10(最新)以及 npx 使用的版本,Got "11.13.0"但我的机器上不存在。

有人遇到这个问题吗?请帮助,非常感谢提前。

标签: node.jsnpmcreate-react-appnpx

解决方案


Windows 上的情况可能有所不同,但在类 UNIX 操作系统(包括 macOS)上,您可以通过以下命令找到node正在执行的路径npx

/usr/bin/env node -p process.execPath

这是因为npx文件以#!/usr/bin/env node. 因此,您可以使用它/usr/bin/env node来执行相同node的操作npx

-p表示“打印值”并且process.execPath是可执行文件的路径。

为什么您要执行上述操作而不仅仅是使用which node

which将报告别名,这意味着它将报告node您将在 shell 中看到的可执行文件。这不是npx将要使用的,这似乎有可能解释为什么npx可能会使用与您预期不同的 Node.js 版本。

$ alias node=echo
$ node foo
foo
$ which node
node: aliased to echo
$ /usr/bin/env node -p process.execPath
/Users/trott/.nvm/versions/node/v15.0.1/bin/node
$

推荐阅读