我正在通过cmder wslbridge在Ubuntu上使用bash运行最新的稳定窗口(我尝试直接通过bash运行,但存在相同的错误)。移至基于Windows的react-native文件夹并尝试运行npm run android
,react-native run-android
,gradlew clean
之类的cli总是会产生错误;
令人惊讶的是,其他一些命令(例如npm start)也可以正常工作...
哪个npm打印出来; /usr/local/bin/npm
我在Windows上安装了npm,并在Ubuntu上安装了ism,npm在哪里产生了此结果
我真的很困惑。在bash中将npm命令运行到Windows文件夹时,应触发哪个npm? Windows还是WSL之一?!
我尝试了很多建议的解决方案,但似乎没有任何作用...
答案 0 :(得分:1)
正如您所说,您不确定在运行命令时实际运行的是什么。如果运行以下命令,则可能会清楚地知道实际运行的是什么。
➜ ~ 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版本(通过运行which npm
来显示)。这是因为当搜索路径时,将使用找到的第一个路径。我路径中所有文件夹中npm的第一个实例位于/home/damo/.nvm/versions/node/v8.11.1/bin
中。请注意,使用nvm时,切换节点版本时会更改路径,并且很方便地将此新路径放在所有现有路径文件夹的最前面。
它也值得检查别名集,因为它甚至在查询路径之前都会得到评估。只需运行alias
即可获得列表。
希望这有助于查找实际运行的内容。我很想听听你的生活。