node.js - 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"
但我的机器上不存在。
有人遇到这个问题吗?请帮助,非常感谢提前。
解决方案
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
$
推荐阅读
- kubernetes - 有没有办法从文件创建的 configmap 在 pod 中配置环境变量?
- html - 使用 Bootstrap 4 导航栏组织 HTML 网站
- flutter - 如何在列表中保存共享偏好?
- python - 在多终端中打开 Python 函数
- c# - 异步代码似乎是并行运行的
- css - 在 CSS Grid 中从底部开始填充单元格
- python - Python在Windows上正确解码字节字符串但在linux上不起作用。给出Unicode错误
- android - Flutter 应用程序在 Android 模拟器上运行,但不在物理设备上(OnePlus 7T)
- android - 如何为移动应用设计循环事件系统?
- java - 如何从嵌套的 ArrayList 访问特定元素