node.js - sudo: npm: 在 WSL 中找不到命令

标签 node.js sudo windows-subsystem-for-linux oh-my-zsh nvm

我正在尝试使用 WSL 在 Windows 上为我的 Unix 环境全局安装一些软件包。我使用 nvm 来管理不同版本的 Node.js。

问题出在全局 npm 安装之前使用 sudo 命令时:

sudo npm install --global提示-pure

我收到错误:sudo:npm:找不到命令!

WSL sudo node npm command not found

执行一个简单的 npm install --global pure-prompt 就可以了,但由于我不是 super 用户,全局安装最终会出现权限错误。

如何解决这个恼人的问题并保留 nvm

提前致谢

最佳答案

当您尝试运行 sudo npm 时,它会尝试运行 npm 二进制文件 /usr/bin/npm 但您的二进制文件位于不同的位置,这可以发现正在运行 which npm

示例:/home/damo/.nvm/versions/node/v8.11.1/bin/npm

解决方案是在 /usr/bin/ 中创建一个指向实际二进制文件的链接:

sudo ln -s "$(which npm)"/usr/bin/npm

您还可以添加以下链接,以便运行sudo node

sudo ln -s "$(哪个 Node )"/usr/bin/node

关于node.js - sudo: npm: 在 WSL 中找不到命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51536330/

相关文章:

Python 在 sudo 下运行时无法识别 cv2

bash - Foreman 和 PATH 环境变量

windows-subsystem-for-linux - 我如何获得man命令?

javascript - data.buffer.length 返回未定义

node.js - Node-sass 没有与 TestCafe Docker Image 中使用的 Node 版本绑定(bind)

javascript - 无法启动 ionic 应用程序

node.js - 如何以编程方式在 Debug模式下运行 mocha?

ruby - 如何使用 Capistrano 3 作为另一个用户进行部署

docker - 如何修复 "Failed to connect to localhost port 9515: Connection refused"Laravel Dusk

windows-10 - 修复: WslRegisterDistribution failed with error: 0x80370102