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

时间:2017-11-22 12:14:56

标签: node.js npm n

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

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

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

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

我完全搜索了这个(npmrc节点版本)但是没有幸运能找到一些东西。

2 个答案:

答案 0 :(得分:0)

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

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会检测到并激活正确的版本

不幸的是我收到了额外的权限错误。所以要做到这一点,你需要安装/配置" n"没有sudo / root的工作。

答案 1 :(得分:0)

如果您可以使用其他工具,可以使用nvshim

pip install nvshim  # this is all you need to do

这不会减慢Shell启动或切换目录的速度,而是会通过填充这些二进制文件,从而在调用nodenpmnpx时将查找哪个节点版本的查询移至该位置。在docs中有更多详细信息。

来源,我写了这个工具。