不同项目的不同节点版本,有没有办法告诉节点使用哪个版本?

Different node version for different projects, is there a way of telling node which version to use?

我有一个很常见的(我猜)问题。我的许多项目都使用 nodejs,一些用于业务逻辑,另一些仅用于某些构建任务。

我需要在不同的项目中有不同的运行时,我的一个电子应用程序需要节点 7.10.0,典型的构建套件需要节点 8.x。

现在我知道了 - 我可以使用 sudo n 7.10.0sudo n latest 在我的计算机上全局切换运行时(对于那些不知道这个的人 - 看看 "n"

总之,IMO 这不是那么方便(有时,我需要在切换版本后重建所有模块,经常忘记切换等等)。有没有办法告诉节点使用哪个解释器?我可以在项目目录中使用 .npmrc 文件来强制该子目录中的特定 nodejs 版本吗?

我精确地搜索了这个(npmrc 节点版本)但没有幸运地找到一些东西。

好的,我发现了一个类似的问题:

Automatically switch to correct version of Node based on project

看来您可以安装 "avn" 并使用 .node-version 文件来完成此操作。

sudo npm install -g avn avn-n
avn setup

然后你可以在你的项目中创建一个.node-version文件并输入你想要的版本

echo 7.10.0 > .node-version

然后 avn 将检测到并激活正确的版本

不幸的是,我收到了一个额外的权限错误。因此,要完成这项工作,您需要 install/configure "n" 才能在没有 sudo/root.

的情况下工作

如果您不介意使用其他工具,则可以使用 nvshim

pip install nvshim  # this is all you need to do

它不会减慢您的 shell 启动或切换目录,而是在您调用 nodenpmnpx 时移动对哪个节点版本的查找填充那些二进制文件。 docs.

中有更多详细信息

源码,工具是我写的

NVM(节点版本管理器)让我们可以很容易地在一台机器上使用不同版本的节点。您可以查看 here 如何配置和使用它。