【问题标题】:Different node version for different projects, is there a way of telling node which version to use?不同项目的不同节点版本,有没有办法告诉节点使用哪个版本?
【发布时间】:2018-05-06 04:17:41
【问题描述】:

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

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

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

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

我完全搜索了这个(npmrc 节点版本),但没有足够幸运找到。

【问题讨论】:

    标签: node.js linux npm n


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      pip install nvshim  # this is all you need to do
      

      它不会减慢您的 shell 启动或切换目录,而是在您调用 nodenpmnpx 时通过填充这些二进制文件来查找哪个节点版本。更多详情请关注docs

      来源,我写了这个工具。

      【讨论】:

        【解决方案3】:

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

        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 的情况下工作。

        【讨论】:

        • 你好,对我来说同样的权限错误checkPermissions Missing write access, Error: EACCES: permission denied, access '/usr/local/lib/node_modules/avn。你是怎么解决的?
        • 在安装 npm 之前,创建一个名为 .npmrc 的文件并将其放在您的主目录中。该文件的内容:prefix=${HOME}/.npm-packages 这将使 npm 安装包到您的主目录而不是 usr/local... 如果您不想重新安装所有内容,您可以尝试手动修复各种权限。查看 $N_PREFIX 环境变量的值。这是您的软件包的安装位置。我试图解决这个问题,但最终重新安装了所有东西:-)
        猜你喜欢
        • 1970-01-01
        • 2020-12-30
        • 1970-01-01
        • 1970-01-01
        • 2023-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-09
        相关资源
        最近更新 更多