npm 命令在 Windows 上的 Ubuntu 上的 Bash 上不起作用 (WSL)
npm commands not working on Bash on Ubuntu on Windows (WSL)
我正在 运行ning 最新稳定 windows 与 bash 在 Ubuntu 运行ning 通过 cmder wslbridge(我试过 运行ning直接通过 bash 但同样的错误)。移动到我基于 windows 的 react-native 文件夹并尝试 运行 一些像 npm run android
, react-native run-android
, gradlew clean
这样的 cli 总是产生错误;
令人惊讶的是,一些其他命令(例如 npm start)可以正常工作...
which npm 打印出来; /usr/local/bin/npm
我在 windows 和 inisde Ubuntu 上安装了 npm 并且 npm 在哪里生成这个
我在这里真的很困惑;当 运行ning npm 命令在 bash 到 windows 文件夹时应该触发哪个 npm? windows 还是 WSL 那个?!
我尝试了很多建议的解决方案,但似乎没有任何效果...
正如您所说,当您 运行 命令时,您不确定 运行 实际是什么。如果您 运行 以下命令可能会清楚 运行ning.
➜ ~ whereis npm
npm: /usr/local/bin/npm /home/damo/.nvm/versions/node/v8.11.1/bin/npm /mnt/c/Program Files/nodejs/npm /mnt/c/Program Files/nodejs/npm.cmd
➜ ~ which npm
/home/damo/.nvm/versions/node/v8.11.1/bin/npm
➜ ~ npm --version
6.4.1
➜ ~ sudo find / -name npm
/home/damo/.npm/10.52.63.39_4783/npm
/home/damo/.npm/npm
/home/damo/.nvm/versions/node/v10.4.1/bin/npm
/home/damo/.nvm/versions/node/v8.11.1/bin/npm
/home/damo/.oh-my-zsh/plugins/npm
/mnt/c/Program Files/nodejs/node_modules/npm
/mnt/c/Program Files/nodejs/node_modules/npm/bin/npm
/mnt/c/Program Files/nodejs/npm
/mnt/c/Users/stangerd/AppData/Roaming/npm
➜ ~ echo $PATH
/home/damo/.nvm/versions/node/v8.11.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files/cmder/vendor/conemu-maximus5/ConEmu/Scripts:/mnt/c/Program Files/cmder/vendor/conemu-maximus5:/mnt/c/Program Files/cmder/vendor/conemu-maximus5/ConEmu:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/Windows/System32:/mnt/c/Windows:/mnt/c/Windows/System32/wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0:/mnt/c/HashiCorp/Vagrant/bin:/mnt/c/Program Files/Git/cmd:/mnt/c/Program Files/nodejs:/mnt/c/Program Files/Beyond Compare 4:/mnt/c/ProgramData/chocolatey/bin:/mnt/c/Program Files/Microsoft VS Code/bin:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/Users/ stangerd/AppData/Roaming/npm
➜ ~ nvm use 10
Now using node v10.4.1 (npm v6.1.0)
➜ ~ echo $PATH
/home/damo/.nvm/versions/node/v10.4.1/bin:/usr/local/sbin:/usr/local/bin:........
你可以看到,对我来说,我也有很多版本的 npm,但它是我的 WSL 当前正在使用的 nvm 版本(由 运行ning which npm
显示)。这是因为当搜索路径时,将使用第一个找到的路径。我路径中所有文件夹中的第一个 npm 实例在 /home/damo/.nvm/versions/node/v8.11.1/bin
中。请注意,当使用 nvm 时,切换节点版本时路径将被更改,并且方便地将此新路径放在所有现有路径文件夹的前面。
它也值得检查别名集,因为它在路径被查询之前就已经被评估了。只需 运行 alias
即可获得列表。
希望这有助于找到真正的 运行ning。我很想知道你过得怎么样。
我正在 运行ning 最新稳定 windows 与 bash 在 Ubuntu 运行ning 通过 cmder wslbridge(我试过 运行ning直接通过 bash 但同样的错误)。移动到我基于 windows 的 react-native 文件夹并尝试 运行 一些像 npm run android
, react-native run-android
, gradlew clean
这样的 cli 总是产生错误;
令人惊讶的是,一些其他命令(例如 npm start)可以正常工作...
which npm 打印出来; /usr/local/bin/npm
我在 windows 和 inisde Ubuntu 上安装了 npm 并且 npm 在哪里生成这个
我在这里真的很困惑;当 运行ning npm 命令在 bash 到 windows 文件夹时应该触发哪个 npm? windows 还是 WSL 那个?!
我尝试了很多建议的解决方案,但似乎没有任何效果...
正如您所说,当您 运行 命令时,您不确定 运行 实际是什么。如果您 运行 以下命令可能会清楚 运行ning.
➜ ~ whereis npm
npm: /usr/local/bin/npm /home/damo/.nvm/versions/node/v8.11.1/bin/npm /mnt/c/Program Files/nodejs/npm /mnt/c/Program Files/nodejs/npm.cmd
➜ ~ which npm
/home/damo/.nvm/versions/node/v8.11.1/bin/npm
➜ ~ npm --version
6.4.1
➜ ~ sudo find / -name npm
/home/damo/.npm/10.52.63.39_4783/npm
/home/damo/.npm/npm
/home/damo/.nvm/versions/node/v10.4.1/bin/npm
/home/damo/.nvm/versions/node/v8.11.1/bin/npm
/home/damo/.oh-my-zsh/plugins/npm
/mnt/c/Program Files/nodejs/node_modules/npm
/mnt/c/Program Files/nodejs/node_modules/npm/bin/npm
/mnt/c/Program Files/nodejs/npm
/mnt/c/Users/stangerd/AppData/Roaming/npm
➜ ~ echo $PATH
/home/damo/.nvm/versions/node/v8.11.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files/cmder/vendor/conemu-maximus5/ConEmu/Scripts:/mnt/c/Program Files/cmder/vendor/conemu-maximus5:/mnt/c/Program Files/cmder/vendor/conemu-maximus5/ConEmu:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/Windows/System32:/mnt/c/Windows:/mnt/c/Windows/System32/wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0:/mnt/c/HashiCorp/Vagrant/bin:/mnt/c/Program Files/Git/cmd:/mnt/c/Program Files/nodejs:/mnt/c/Program Files/Beyond Compare 4:/mnt/c/ProgramData/chocolatey/bin:/mnt/c/Program Files/Microsoft VS Code/bin:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/Users/ stangerd/AppData/Roaming/npm
➜ ~ nvm use 10
Now using node v10.4.1 (npm v6.1.0)
➜ ~ echo $PATH
/home/damo/.nvm/versions/node/v10.4.1/bin:/usr/local/sbin:/usr/local/bin:........
你可以看到,对我来说,我也有很多版本的 npm,但它是我的 WSL 当前正在使用的 nvm 版本(由 运行ning which npm
显示)。这是因为当搜索路径时,将使用第一个找到的路径。我路径中所有文件夹中的第一个 npm 实例在 /home/damo/.nvm/versions/node/v8.11.1/bin
中。请注意,当使用 nvm 时,切换节点版本时路径将被更改,并且方便地将此新路径放在所有现有路径文件夹的前面。
它也值得检查别名集,因为它在路径被查询之前就已经被评估了。只需 运行 alias
即可获得列表。
希望这有助于找到真正的 运行ning。我很想知道你过得怎么样。