【发布时间】:2020-10-05 23:25:33
【问题描述】:
我已经为 Windows 安装了 NVM,所以我可以在需要时在不同版本的节点之间切换。但是,我需要能够调用一个版本的 node / npm 而无需切换
例如,现在我安装了 2 个版本的节点:10.17.0 和 8.9.1。我可以使用nvm use 10.17.0 或nvm use 8.9.4 在它们之间轻松切换,并且在这些命令中的任何一个之后,当我运行node ./app.js 或npm install package 时,它使用预期版本的node / npm 来执行我的要求
但我想创建一个可以避免切换的情况,而我可以只输入node10 ./app.js 或npm10 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 / node10 和npm8 / 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