WebStorm 找不到节点解释器

WebStorm can't find node interpreter

我是 运行 Manjaro,我在 PATH 中有一个节点,它位于 /usr/bin/node,我可以使用 [=] 从终端调用它11=],符合预期。但是,当我尝试将解释器添加到 WebStorm 时,当我打开用于添加 Node 和 npm 可执行文件的对话框并导航到 /usr/bin 时,它根本不会显示在那里。我已经通过 flatpak 安装了 WebStorm。有什么想法吗?

设法通过卸载 flatpak WebStorm 实例来解决这个问题,我已经安装并安装了 WebStorm 到 [=11] =] 商店。它只是在之后工作,但我会保留这个问题,以防有人有更好的解决方案。

Flatpak 是沙盒化的,因此它不能直接运行 主机上用户主目录之外的任何内容。

但是,有一种方法可以解决这个问题,方法是使用 flatpak-spawn.

对主机二进制文件进行 flatpak 运行

解决方案

1. 运行shell中的这两条命令:

printf '#!/usr/bin/env sh\nflatpak-spawn --host node "$@"\n' > ~/flatpak-node
chmod a+x ~/flatpak-node

2。在 WebStorm 中,转到

File > Settings > Languages & Frameworks > Node.js and NPM(或TypeScript

并将 Node Interpreter 设置为 ~/flatpak-node


说明

这将在您的主目录中创建一个名为 flatpak-node 的可执行文件,内容如下:

#!/usr/bin/env sh
flatpak-spawn --host node "$@"

这将告诉 Flatpak 运行 主机上的 node 二进制文件并传递任何参数。它之所以有效,是因为我们创建的可执行文件位于主目录中,并且 flatpak-spawn 可以 运行 命令就像它在主机上(在沙箱之外)一样。

就我个人而言,我制作了文件 ~/bin/flatpak-node,但您可以将其放在主目录中的任何位置。


奖金PHP

值得注意的是,同样的解决方案适用于 PhpStormphp 解释器。只需将内容和文件名中的 node 替换为 php

#!/usr/bin/env sh
flatpak-spawn --host php "$@"