npm 不同的项目有不同的节点版本,是否有方法告诉节点使用哪个版本?

uemypmqf  于 2022-12-23  发布在  其他
关注(0)|答案(4)|浏览(169)

我有一个很常见的问题(我猜),我的许多项目都使用nodejs,一些用于业务逻辑,另一些只用于一些构建任务。
我需要在不同的项目中有不同的运行时,我的一个电子应用程序需要节点7.10.0,一个典型的构建套件需要节点8.x。
现在我知道了-我可以使用sudo n 7.10.0sudo n latest在我的计算机上全局切换运行时(对于那些不知道这一点的人-看看"n"
无论如何,这并不方便(有时候,我需要在切换版本后重新构建所有的模块,经常忘记切换等等).有没有办法告诉节点使用哪个解释器?我可以使用项目目录中的.npmrc文件来强制该子目录中的特定nodejs版本吗?
我精确地搜索了这个(NPMRC节点版本),但没有幸运地找到一些东西。

cwtwac6a

cwtwac6a1#

好吧,我发现了一个类似的问题:
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的情况下工作。

bnlyeluc

bnlyeluc2#

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

pip install nvshim  # this is all you need to do

它不会减慢shell启动或切换目录的速度,而是在调用nodenpmnpx时通过填充这些二进制文件来查找节点版本。
来源,我写的工具。

k2arahey

k2arahey3#

NVM(节点版本管理器)允许我们在一台机器上使用不同版本的节点。你可以看看here如何配置和使用它。

m4pnthwp

m4pnthwp4#

Volta可以用来在同一台机器上管理不同项目的多个节点、npm或Yarn版本。它是跨平台的。
例如,您可以在项目目录中运行volta pin node@14,这将把节点设置为v14(如果存在),否则它将下载并设置它。
更多信息https://docs.volta.sh/guide/

相关问题