【问题标题】:NVM for windows - ability to specify specific version without switchingNVM for windows - 无需切换即可指定特定版本
【发布时间】:2020-10-05 23:25:33
【问题描述】:

我已经为 Windows 安装了 NVM,所以我可以在需要时在不同版本的节点之间切换。但是,我需要能够调用一个版本的 node / npm 而无需切换

例如,现在我安装了 2 个版本的节点:10.17.0 和 8.9.1。我可以使用nvm use 10.17.0nvm use 8.9.4 在它们之间轻松切换,并且在这些命令中的任何一个之后,当我运行node ./app.jsnpm install package 时,它使用预期版本的node / npm 来执行我的要求

但我想创建一个可以避免切换的情况,而我可以只输入node10 ./app.jsnpm10 install package,它使用我指定的版本

现在,我自己做了一些研究,了解如何做这件事,所以我会列出来,希望有人能提供一些建议,因为他们做过类似的事情。

首先:nvm 将两个版本的 node 安装在一个特定的地方,并且那个地方应该保持静态和不变。我可以在这里找到 node 和 npm 的 8.9.1 版本:C:\Users\SamuelR\AppData\Roaming\nvm\v8.9.1

我可以在这里找到 10.17.0 版本:C:\Users\SamuelR\AppData\Roaming\nvm\v10.17.0

当我使用nvm use 10.17.0 时,它的作用是更改C:\Program Files\nodejs 处的符号链接,并将其指向我指定的这两个文件夹中的任何一个

所以我想让node8 / node10npm8 / npm10 命令工作的想法是这样的:

在我的 PATH 中的某个文件夹中,我将创建 4 个 .bat 文件,node8.bat npm8.bat node10.bat npm10.bat。对于node8.bat,我打算关注example here

C:\Users\SamuelR\AppData\Roaming\nvm\v8.9.1\node.exe %*,以便它始终将我的所有命令行参数转发到正确的安装。

对于 npm,文件 npm8.bat 将具有 C:\Users\SamuelR\AppData\Roaming\nvm\v8.9.1\npm.cmd %*

也许我会为 npx 做同样的事情。然后我会为 node10.bat npm10.bat 文件重复这些步骤。

这是解决这个问题的正确方法吗?它甚至有意义吗?

【问题讨论】:

    标签: node.js windows batch-file npm


    【解决方案1】:

    Welp,没有人给出任何答案,但我自己尝试过,据我所知,它有效!

    为了清楚起见,我将在此处进行说明:一旦 nvm 随心所欲地工作,找到安装目录,在我的例子中是 C:\Users\SamuelR\AppData\Roaming\nvm

    对于您想要创建这些快捷方式的每个节点版本,制作以下文件,

    node{v}.bat (eg node10.bat)
    npm{v}.bat (eg npm10.vat)
    npx{v}.bat (eg npx10.vat)
    

    将它们全部放在您的 PATH 环境变量中可访问的文件中(我创建了一个名为 C:\Program Files\nodelinks 的新文件夹并将其放在我自己的路径中)

    inside node10.bat:
    C:\Users\SamuelR\AppData\Roaming\nvm\v10.17.0\node.exe %*
    
    inside npm10.bat:
    C:\Users\SamuelR\AppData\Roaming\nvm\v10.17.0\npm %*
    
    inside npx10.bat:
    C:\Users\SamuelR\AppData\Roaming\nvm\v10.17.0\npx %*
    

    据我所知,它按预期传递所有参数,没有明显的权限问题,它完全按预期工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-11
      • 1970-01-01
      • 2017-11-25
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多