我有一个很常见的问题。我的许多项目都使用Nodejs,有些是用于业务逻辑的,另一些仅用于某些建筑任务。
我需要在不同的项目中有不同的运行时间,我的一个电子应用需要节点7.10.0,典型的构建套件需要节点8.x。
现在我知道 - 我可以使用sudo n 7.10.0
或sudo n latest
在我的计算机上全球切换运行时(对于那些不知道这一点的人 - 看" N")
无论如何,IMO这并不是那么方便(有时候,我需要在切换版本后重建所有模块,通常我忘记切换等)。有没有一种方法来告诉节点要使用哪种解释器?我可以在项目目录中使用.npmrc
文件来强制该子目录中的特定nodejs版本?
我完全搜索了这个(NPMRC节点版本),但没有足够的幸运。
好吧,我找到了类似的问题:
基于项目
自动切换到正确的节点版本似乎您可以安装" AVN"并使用.node-version
文件来做到这一点。
sudo npm install -g avn avn-n
avn setup
然后,您可以在项目中创建一个.node-version文件,然后输入所需版本
echo 7.10.0 > .node-version
然后AVN将检测并激活正确的版本
不幸的是,我会收到其他权限错误。因此,要使这项工作,您需要安装/配置" n"才能在没有sudo/root的情况下工作。
如果您可以使用其他工具,则可以使用nvshim
。
pip install nvshim # this is all you need to do
它不会减慢您的外壳启动或切换目录,而是通过绕过这些二进制文件来调用哪个节点版本的查找到调用node
,npm
或npx
时。文档中的更多详细信息。
来源,我写了工具。
nvm (Node版本管理器)允许我们轻松地在单个计算机上使用不同版本的节点。您可以在这里查看如何配置和使用它。
volta可用于管理同一机器上不同项目上的多个nodejs,npm或纱线版本。它是跨平台。
例如,您可以在项目目录中运行volta pin node@14
,如果存在,则可以将节点设置为v14,否则将下载然后将其设置。
更多信息在此处https://docs.volta.sh/guide/