我有一个很常见的问题(我猜),我的许多项目都使用nodejs,一些用于业务逻辑,另一些只用于一些构建任务。
我需要在不同的项目中有不同的运行时,我的一个电子应用程序需要节点7.10.0,一个典型的构建套件需要节点8.x。
现在我知道了-我可以使用sudo n 7.10.0
或sudo n latest
在我的计算机上全局切换运行时(对于那些不知道这一点的人-看看"n")
无论如何,这并不方便(有时候,我需要在切换版本后重新构建所有的模块,经常忘记切换等等).有没有办法告诉节点使用哪个解释器?我可以使用项目目录中的.npmrc
文件来强制该子目录中的特定nodejs版本吗?
我精确地搜索了这个(NPMRC节点版本),但没有幸运地找到一些东西。
4条答案
按热度按时间cwtwac6a1#
好吧,我发现了一个类似的问题:
Automatically switch to correct version of Node based on project
看起来你可以安装“avn”并使用
.node-version
文件来完成这一任务。然后可以在项目中创建.node-version文件并输入所需的版本
然后avn会检测到并激活正确的版本
不幸的是,我得到了一个额外的权限错误。所以要使此工作,您需要安装/配置“n”,以在没有sudo/root的情况下工作。
bnlyeluc2#
如果您可以使用其他工具,则可以使用
nvshim
。它不会减慢shell启动或切换目录的速度,而是在调用
node
、npm
或npx
时通过填充这些二进制文件来查找节点版本。来源,我写的工具。
k2arahey3#
NVM(节点版本管理器)允许我们在一台机器上使用不同版本的节点。你可以看看here如何配置和使用它。
m4pnthwp4#
Volta可以用来在同一台机器上管理不同项目的多个节点、npm或Yarn版本。它是跨平台的。
例如,您可以在项目目录中运行
volta pin node@14
,这将把节点设置为v14(如果存在),否则它将下载并设置它。更多信息https://docs.volta.sh/guide/