我尝试使用 NVM 在 WSL 上安装 Node LTS。当我成功安装 nvm 时,使用 Node 安装出现nvm install --lts
了一些错误:
mv: cannot move '/home/anesin1109/.nvm/.cache/bin/node-v10.15.3-linux-x64/files/bin' to '/home/anesin1109/.nvm/versions/node/v10.15.3/bin': Permission denied
mv: cannot move '/home/anesin1109/.nvm/.cache/bin/node-v10.15.3-linux-x64/files/include' to '/home/anesin1109/.nvm/versions/node/v10.15.3/include': Permission denied
mv: cannot move '/home/anesin1109/.nvm/.cache/bin/node-v10.15.3-linux-x64/files/lib' to '/home/anesin1109/.nvm/versions/node/v10.15.3/lib': Permission denied
mv: cannot move '/home/anesin1109/.nvm/.cache/bin/node-v10.15.3-linux-x64/files/share' to '/home/anesin1109/.nvm/versions/node/v10.15.3/share': Permission denied
Run Code Online (Sandbox Code Playgroud)
我试图手动移动这些文件,但它也以这些错误结束。
我安装了 nvm 来管理我的节点版本。如果我全局安装一个包,npm install -g fkill
然后运行fkill
,我会收到错误zsh: command not found: fkill
。
以下是一些运行命令以帮助调试此问题
$ npm root -g
/home/jchi/.nvm/versions/node/v10.15.3/lib/node_modules
Run Code Online (Sandbox Code Playgroud)
看看我的路径...
$ echo $PATH
/home/jchi/.pyenv/shims:/home/jchi/.pyenv/bin:/home/jchi/.nix-profile/bin:/home/jchi/.autojump/bin:/home/jchi/.nvm/versions/node/v10.15.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/games
Run Code Online (Sandbox Code Playgroud)
我在我的 PATH 中没有看到 的输出npm root -g
。
我认为 nvm 有责任将其添加到我的路径中,以便可以运行全局安装的软件包。所以我看看我的.zshrc
kickstarts nvm 中有什么。
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
105 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
Run Code Online (Sandbox Code Playgroud)
感谢建议
我之前安装了nodejs,没有nvm,然后通过卸载并删除所有文件将其彻底删除。
我使用的是 Windows 10。
当我以管理员身份使用 run powershell 时它可以工作,但我无法在 vscode 中使用yarn。
PS C:\Users\laveen> nvm ls
No installations recognized.
PS C:\Users\laveen> nvm install 14.18.1
Downloading node.js version 14.18.1 (64-bit)...
Complete
Creating C:\Users\laveen\AppData\Roaming\nvm\temp
Downloading npm version 6.14.15... Complete
Installing npm v6.14.15...
Installation complete. If you want to use this version, type
nvm use 14.18.1
PS C:\Users\laveen> nvm use 14.18.1
exit status 1: Access is denied.
Run Code Online (Sandbox Code Playgroud) 我遇到了“错误:已知 npm v9.5.0 不能在 Node.js v18.15.0 上运行。” 在 Windows 上使用 nvm。
nvm -v
# Running version 1.1.7.
Run Code Online (Sandbox Code Playgroud) 我已经有节点0.10.*并且我安装了nvm,然后通过nvm我再次安装了0.11.13和0.10.
node --version返回0.11.13
我尝试使用我读过的一些ES6功能,而我尝试过的任何功能都没有.
我用我的脚本运行 node --harmony index.js
...args
说 SyntaxError: Unexpected token .
let x = 5;
也给出了错误 - SyntaxError: Unexpected identifier
我在哪里可以找到0.11.13目前支持的内容?
我正在使用.nvmrc
文件来锁定我的项目的 Node 版本。有没有办法锁定我的 NPM 版本?我想确保运行我的项目的任何人都在相同的设置中。
我有一个脚本package.json
:
{
"scripts": {
"start": "source run-nvm.sh && ..."
}
}
Run Code Online (Sandbox Code Playgroud)
但跑步source run-nvm.sh && ...
与yarn start
(或npm run start
)不同。
为什么?它创建了一个子shell。所以我不能改变原始 shell 的环境,我不能export
为它常量或操纵它的状态nvm
(我不能改变父 shell 的节点版本)
我可以通过不创建子shell来执行yarn/npm脚本吗?(并使用当前的外壳)
或者
如何使用 npm 脚本获取 shell 脚本?
最终,您可能会尝试通过询问以下问题来改变话语:“为什么不只是source run-nvm.sh && yarn start
”但我不想只添加一些自定义脚本和复杂性,我希望它在yarn start
/上自动执行npm start
(自动更改节点版本)
它当前有效(脚本更改节点的版本并运行应用程序)但由于它是一个子shell,它不保存 nvm 的状态。因此,yarn start
它最初使用默认版本,然后更改版本,然后启动应用程序,因此它yarn start
为版本更改命令添加了约 3-4 秒。虽然它不应该每次都设置版本,但应该只设置一次,第一次。
我已经在我的 Windows 机器上安装了 nvm,并且使用 nvm,我安装了 2 个节点版本,但它不允许我更改版本。
Microsoft Windows [Version 10.0.16299.64]
(c) 2017 Microsoft Corporation. All rights reserved.
C:\Windows\system32>nvm use 12.18.0
exit status 1: 'C:\Users\Sarmad' is not recognized as an internal or external command,
operable program or batch file.
C:\Windows\system32>nvm version
1.1.7
C:\Windows\system32>nvm ls
* 15.8.0 (Currently using 64-bit executable)
12.18.0
C:\Windows\system32>nvm use 12.18.0
exit status 1: 'C:\Users\Ali' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)