-bash:cordova:找不到命令;或 -bash: phonegap: command not found
Posted
技术标签:
【中文标题】-bash:cordova:找不到命令;或 -bash: phonegap: command not found【英文标题】:-bash: cordova: command not found; or -bash: phonegap: command not found 【发布时间】:2013-08-01 06:29:51 【问题描述】:我不会问一个问题,而是回答一个问题,因为到目前为止我还没有在网上找到这个建议,而且我自己也只是想通了。很好分享,对吧?
所以在命令行上,我这样做了:
sudo npm install -g cordova
sudo npm install -g phonegap
效果很好,但是当我运行以下任一行时:
My-MacBook-Pro:~ username$ cordova
My-MacBook-Pro:~ username$ phonegap
我收到了这些消息:
-bash: cordova: command not found
-bash: phonegap: command not found
为什么?原来我的 /usr/local/lib 目录的权限被设置为“每个人:无访问权限”。我将其更改为“所有人:只读”并再次尝试。
My-MacBook-Pro:~ username$ cordova
My-MacBook-Pro:~ username$ phonegap
这次他们成功了!作为测试,我将其转回“每个人:禁止访问”,看看它是否真的是问题所在。这次我收到了不同的消息:
-bash: /usr/local/bin/cordova: Permission denied
-bash: /usr/local/bin/phonegap: Permission denied
结果是一样的,我无法通过命令行调用cordova或phonegap(我将最后两条拒绝消息包括在内,以防有人搜索它们)。
【问题讨论】:
你试过我的解决方案了吗? 这是迄今为止我遇到的最佳答案***.com/questions/9679932/… 检查我的答案应该可以工作 【参考方案1】:我在 Mac Os Mountain Lion 上。经过多次尝试,结果发现解决方案非常快。
在安装 Cordova 之前,请确保您是要安装到其中的文件夹的所有者。打开终端并输入:
sudo chown -R $USER /usr/local/bin
sudo chmod -R 0775 /usr/local/bin
sudo chown -R $USER /usr/local/lib/node_modules
sudo chmod -R 0775 /usr/local/lib/node_modules
npm install -g cordova
如果您安装了新版本的 node.js,您仍然可能会遇到一些错误。尝试删除 npm 缓存:
sudo npm cache clear
npm install -g cordova
然后输入cordova
,祝你好运;)
编辑:现在更新为可与 macOS Mojave 一起使用。
注意:Mojave 不允许您更改 /usr/local/
altogether 的所有权,会引发错误
chown: /usr/local: Operation not permitted
修复很简单,我们只需要指定node_modules
子文件夹的路径。
此更改还将解决安装许多其他流行包时的类似常见问题。
【讨论】:
@DeborahSpeece 你能更具体一点吗?也许您正在将文件安装在另一个位置,或者问题不同。您使用的是什么版本的 OSX? 使用 Mac OSX Mavericks。经过大量的扯皮后,npm 为本地用户安装了 cordova 和 phonegap,而不是全局用户,即使使用 -g 和 -gf 也是如此。我无法为全球用户安装任何一个。 @richtextformat 为什么这个答案还没有被接受?【参考方案2】:通过在终端中运行以下命令来查看您的 $Path
变量:
echo "$PATH"
如果您没有看到 cordova 尝试安装的相同路径,则需要修复安装位置。
运行:
npm config get prefix
OS X 上的默认值为/usr/local
,这意味着 npm 会将二进制文件符号链接到 /usr/local/bin,它应该已经在你的 PATH 中。如果您有不同的路径,请将 npm 配置为具有本地目录。
所以运行这个把它改成/usr/local
:
npm config set prefix /usr/local
这就是我。归功于:npm global path prefix
【讨论】:
为我工作!谢谢...之前,它被配置为:/usr/local/Cellar/node/5.3.0/libexec/npm【参考方案3】:您需要将“/usr/local/share/npm/bin”目录添加到您的 $PATH 变量中。 打开终端/命令行并输入:
export PATH=$PATH:/usr/local/share/npm/bin
【讨论】:
我建议也永久添加路径:blog.just2us.com/2011/05/… 它还帮助我解决了错误“错误:找不到 ios-sim。请从github.com/phonegap/ios-sim 下载、构建和安装 1.7 或更高版本到您的路径中。或者使用 node.js 'npm install -g ios-sim':nodejs.org'【参考方案4】:这也发生在我身上。幸运的是发现了这篇很棒的文章:http://blog.webbb.be/command-not-found-node-npm/
我会在这里总结一下。当 npm 安装到非标准位置且不在您的路径中时,可能会发生这种情况。
要检查 npm 的安装位置,请运行:
npm root -g
应该说/usr/local/lib/node_modules
我说/Users/myusername/.npm-packages/lib/node_modules
要将其设置到正确的位置:
运行:npm config set prefix /usr/local
然后用 -g 重新安装你的 npm 包:
npm install -g cordova
等
【讨论】:
【参考方案5】:对于 Ubuntu 用户,它位于 ~/.npm-global/bin
在~/.bashrc
中添加以下行将解决问题。
export PATH=$PATH:~/.npm-global/bin
【讨论】:
【参考方案6】:我必须像这样使用 nodejs 调用 phonegap 命令...
nodejs /usr/local/lib/node_modules/phonegap/bin/phonegap.js create my-app
当我直接使用运行cordova命令时
/usr/local/lib/node_modules/cordova/bin/cordova
什么都不返回
【讨论】:
【参考方案7】:在 OSX 中:
使用 brew 安装 npm 后,如果仍然找不到命令,建议您检查隐藏的 ~/.npm-packages/bin 目录,看看里面是否看到“cordova”。您可以通过以下方式执行此操作:
ls ~/.npm-packages/bin | grep cordova
如果您在那里看到 cordova,您只需要确保此目录在您的路径中。如果您使用的是 bash,请确保使用以下内容编辑您的 ~/.bashrc(或者,如果您使用的是 zsh,请编辑以下文件 ~/.zshrc),方法是在末尾添加此行(将 EDIT_THIS_PUT_YOUR_USER_NAME_HERE 替换为您的实际用户名):
export PATH=$PATH:/Users/EDIT_THIS_PUT_YOUR_USER_NAME_HERE/.npm-packages/bin
之后,要么获取您刚刚编辑的文件,要么直接退出终端并打开一个新文件。要在此处获取文件的说明:如果您编辑了 ~/.bashrc,则只需键入“source ~/.bashrc”,或者如果您使用 zsh 而不是 bash,并且您编辑了 ~/.zshrc,则只需键入'source ~/.zshrc' 你很高兴。您现在应该能够输入“cordova”并在屏幕上看到正确的输出。
【讨论】:
【参考方案8】:在 Mac 操作系统上:
修复权限:
sudo chown -R <USER LOGIN>:wheel /usr/local/*
安装科尔多瓦:
npm install -g cordova
安装路径cordova:/usr/local/Cellar/node/11.10.1/bin/cordova
类型:
cordova
如果消息显示:
-bash: cordova: command not found
将cordova映射到usr/bin:
sudo ln -s /usr/local/Cellar/node/11.10.1/bin/cordova /usr/bin/
重新输入:
cordova
巴什科尔多瓦工作
【讨论】:
ln: /usr/bin/cordova: 不允许操作 在我遇到与 AmineG 相同的事情后,Ira 的解决方案对我有用。【参考方案9】:我刚刚向 NPM 提出了同样的问题,最近得到了答案(npm command not found after updating to Mac OSX 10.9.4),你也可以像我一样在这里应用它。试试这个:
sudo -s ln -s /usr/local/lib/node_modules/phonegap/bin/phonegap.js /bin/usr/cordova
它对我有用。
【讨论】:
【参考方案10】:直到:
sudo rm -R /usr/local/lib/node_modules/cordova
npm install -g cordova
【讨论】:
【参考方案11】:您无需安装包即可轻松运行cordova。只需在您要运行的任何命令前添加npx
。例如:
npx cordova create myApp org.apache.cordova.myApp myApp
npx cordova platform add browser
【讨论】:
【参考方案12】:任何寻找 2021 年答案的人都可以看看@Method Man 的解决方案,如下所示:
“通过在终端中运行以下命令来查看您的 $Path 变量:
回显“$PATH” 如果您没有看到 cordova 尝试安装的相同路径,则需要修复安装位置。
运行:
npm config get prefix
OS X 上的默认值为 /usr/local,这意味着 npm 会将二进制文件符号链接到 /usr/local/bin,它应该已经在你的 PATH 上。如果您有不同的路径,请将 npm 配置为具有本地目录。
所以运行这个把它改成 /usr/local:
npm config set prefix /usr/local
"
【讨论】:
【参考方案13】:您必须在 bash 文件中添加 cordova bin 的路径。
/etc/profile
~/.bash_profile
~/.bash_login (if .bash_profile does not exist)
~/.profile (if .bash_login does not exist)
编辑完文件后尝试关闭并重新打开终端。
【讨论】:
【参考方案14】:npm
安装后的二进制文件将位于/usr/local/share/npm/bin
。随意将该路径添加到系统的 PATH 以便使用它们
【讨论】:
【参考方案15】:你应该更新你的环境变量路径, 如果安装了 phonegap,那么您应该在以下位置找到它:
/usr/local/lib/node_modules/phonegap/bin/
如果您找到此路径,请将其添加到您的路径中。
【讨论】:
【参考方案16】:对我来说,当使用 Homebrew 在 OSX Yosemiti 上安装节点时,Cordova 包没有在适当的 /usr/local/lib 位置创建。我必须将我的 .npm-packages 中的 cordova 文件夹显式复制到应该使用 homebrew 安装的位置。
以下命令对我有用:
sudo cp ~/.npm-packages/lib/node_modules/cordova /usr/local/lib/node_modules/cordova
【讨论】:
【参考方案17】:在我的情况下,问题是,npm 前缀设置为不同的路径,cmd 无法从中选择。
我解决了这个问题
npm config set prefix "/usr/local"
在尝试之前,您可以使用以下命令看到 npm 使用的实际前缀,
npm config get prefix
【讨论】:
【参考方案18】:这是非常基本的,但对我来说,问题是试图在项目文件夹中安装cordova,而不是在本地文件夹中。轻松修复。
【讨论】:
【参考方案19】:我在遵循指导我安装 cordova-android
的教程时遇到了这个问题:
npm i cordova-android
但它并没有说您应该首先在全球范围内安装cordova
CLI!
npm i -g cordova
安装cordova CLI后问题就解决了。
【讨论】:
以上是关于-bash:cordova:找不到命令;或 -bash: phonegap: command not found的主要内容,如果未能解决你的问题,请参考以下文章
Docker /bin/bash: nodemon: 找不到命令
在linux里输入su命令,输入密码后提示bash:…………(一个地址)找不到文件,是怎么回事?
-bash: git: 在 lion osx 的 Xcode 4 中找不到命令
Linux下提示命令找不到:bash:command not found