目前我在Jenkins服务器上安装了两个版本的node。
$ n list
node/10.9.0
node/12.14.1
我正试图切换到10.9.0版本,以进行需要它的特定构建。
我首先尝试使用n <version>
,但最新的12.14.1仍然显示为活动:
$ n 10.9.0
installed : v10.9.0 to /opt/jenkins/n/bin/node
active : v12.14.1 at /bin/node
我也尝试过n use <version>
,它只是在提示之后出现。
$ n use 10.9.0
>
我读过很多关于这方面的文章,但无法获得任何有效切换版本的命令。
即。https://blog.logrocket.com/switching-between-node-versions-during-development/
下面是n个可执行命令。
which n
/opt/jenkins/n/bin/n
版本似乎安装在以下目录下:
/opt/jenkins/n/n/versions/node/
10.9.0
12.14.1
以下是/opt/jenkins/n/bin/
的内容
chrome-debug -> ../lib/node_modules/lighthouse/lighthouse-core/scripts/manual-chrome-launcher.js
lighthouse -> ../lib/node_modules/lighthouse/lighthouse-cli/index.js
n
ng
node
nodejs
npm -> ../lib/node_modules/npm/bin/npm-cli.js
npx -> ../lib/node_modules/npm/bin/npx-cli.js
n-uninstall
n-update
如何使用n切换节点版本?上面有遗漏的东西吗?提前谢谢。
如果您使用brew
并看到类似的内容:
$ n
copying : node/16.19.1
installed : v16.19.1 to /usr/local/bin/node
active : v19.7.0 at /opt/homebrew/bin/node
只需运行brew unlink node
,就可以让n
重新管理节点版本。
运行which node
后,路径显示/bin/node
。
CCD_ 9是到CCD_ 10的符号链接。
$ ll /bin/node
lrwxrwxrwx 1 root root 25 Jan 28 08:26 /bin/node -> /opt/jenkins/n/bin/nodejs
安装时,使用n <version>
仅更新/opt/jenkins/n/bin/node
。
$ n 10.9.0
installed : v10.9.0 to /opt/jenkins/n/bin/node
active : v12.14.1 at /bin/node
完成后,需要将node复制到nodejs中。
$ cp /opt/jenkins/n/bin/node /opt/jenkins/n/bin/nodejs
$ node -v
v10.9.0
您已将节点的副本安装到多个位置,但其中只有一个位置由n
(使用N_PREFIX
设置(管理。您的PATH
包含n
稍后安装的副本,因此当您只键入node
时不会运行。
另请参阅n doctor
,它查找包括此问题在内的一些配置问题。
一种可能的解决方案是在路径的早期设置要使用的位置,另一种是删除不需要的节点副本。但是,您也可以直接运行节点的n
托管副本,这可能非常适合CI类型的情况,并且不需要任何配置更改。
n run
(或n use
(运行指定为一次性命令的节点版本。例如
$ n run 10.9.0 --version
v10.9.0
$ n run 10.9.0 -e 'console.log("hello")'
hello
$ n run 10.9.0 my-script.js
不确定这是最好的选择,但我用echo $PATH
的输出减去子串/Users/achraf/.nvm/versions/node/v14.21.3/bin:
(那是在一开始(手动做了一个export PATH=
,现在我的活动版本不再被隐藏。