#ИМЯ?
Я не собираюсь задавать вопрос, но ответьте на него, так как я нашел этот совет нигде в сети до сих пор и только что понял это сам. Хорошо делиться, правильно?
Итак, в командной строке я сделал это:
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
Результат был таким же, хотя я не мог назвать ни кордону, ни телефонную записями через командную строку (я включаю эти два последних сообщения о отрицании на всякий случай, если кто-то ищет их).
Ответы
Ответ 1
Я на Mac Os Mountain Lion. После нескольких попыток выясняется, что решение довольно быстрое.
Перед установкой Cordova убедитесь, что вы являетесь владельцем папок, в которые он собирается установить. Откройте терминал и введите:
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/
целом, выдав ошибку
chown: /usr/local: Operation not permitted
Исправить это довольно просто, нам просто нужно указать путь к node_modules
.
Это изменение также исправит аналогичные распространенные проблемы при установке многих других популярных пакетов.
Ответ 2
Взгляните на переменные $Path
, запустив в терминале следующее:
echo "$PATH"
Если вы не видите тот же путь, который пытается установить кордова, вам нужно исправить место установки.
Run:
npm config get prefix
По умолчанию для OS X используется /usr/local
, что означает, что npm будет бинарными ссылками на /usr/local/bin, которые уже должны быть на вашем PATH. Если у вас есть другой путь, настройте npm для локального каталога.
Итак, запустите это, чтобы изменить его на /usr/local
:
npm config set prefix /usr/local
Это сотворило меня. Кредит: префикс глобального пути npm
Ответ 3
Вам нужно добавить каталог "/usr/local/share/npm/bin" в переменную $PATH.
Откройте терминал/Командная строка и введите:
export PATH=$PATH:/usr/local/share/npm/bin
Ответ 4
Для пользователей Ubuntu он находится в ~/.npm-global/bin
Добавление следующей строки в ~/.bashrc
приведет к исправлению проблемы.
export PATH=${PATH}:~/.npm-global/bin
Ответ 5
Мне нужно вызвать команду phonegap с помощью nodejs, как это...
nodejs /usr/local/lib/node_modules/phonegap/bin/phonegap.js create my-app
Когда я запускаю команду cordova напрямую, используя
/usr/local/lib/node_modules/cordova/bin/cordova
он ничего не возвращает
Ответ 6
В OSX:
После установки npm с brew, если вы все еще получаете команду не найдена, я предлагаю вам проверить ваш скрытый каталог ~/.npm-packages/bin и посмотреть, видите ли вы внутри себя 'cordova'. Вы можете сделать это следующим образом:
ls ~/.npm-packages/bin | grep 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" и увидеть правильный вывод на экране.
Ответ 7
Это случилось со мной тоже. К счастью, нашел эту отличную запись: 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
Чтобы установить его в правильном месте:
Ответ 8
Я просто задал тот же вопрос с NPM и недавно получил ответ (команда npm не найдена после обновления до Mac OSX 10.9.4), вы также можете применить ее здесь, как и я. Попробуйте следующее:
sudo -s ln -s /usr/local/lib/node_modules/phonegap/bin/phonegap.js /bin/usr/cordova
Это сработало для меня.
Ответ 9
Все не работало для меня, пока:
sudo rm -R /usr/local/lib/node_modules/cordova
npm install -g cordova
Ответ 10
Вы должны добавить путь к кордовому ящику в файле bash.
/etc/profile
~/.bash_profile
~/.bash_login (if .bash_profile does not exist)
~/.profile (if .bash_login does not exist)
Попытайтесь закрыть и снова открыть файл после редактирования файла.
Ответ 11
Двоичные файлы после установки npm
будут расположены в /usr/local/share/npm/bin
. Не стесняйтесь добавлять этот путь к PATH вашей системы, чтобы использовать их
Ответ 12
Вы должны обновить свои пути переменных окружения,
если установлен телефонный диалог, вы должны найти его в:
/usr/local/lib/node_modules/phonegap/bin/
если вы нашли этот путь, добавьте его в свои пути.
Ответ 13
Для меня при установке node на OSX Yosemiti с Homebrew пакет Cordova не создавался в соответствующем /usr/local/lib месте. Мне пришлось явно скопировать папку кордовы из моих пакетов .npm, где она должна была быть установлена с доморощенным.
Для меня работала следующая команда:
sudo cp ~/.npm-packages/lib/node_modules/cordova /usr/local/lib/node_modules/cordova
Ответ 14
В моем случае проблема была в том, что префикс npm был установлен на другой путь, и cmd не смог выбрать из него.
Я решил проблему, используя
npm config set prefix "/usr/local"
Прежде чем попробовать это, вы можете увидеть фактический префикс, используемый npm, используя следующую команду:
npm config get prefix
Ответ 15
Это очень просто, но для меня проблема заключалась в попытке установить Cordova в папке проекта, а не в локальной папке. Легко исправить.
Ответ 16
Вы можете легко запустить Cordova без настройки пакета. Просто добавьте npx
перед любой командой, которую хотите запустить. Пример:
npx cordova create myApp org.apache.cordova.myApp myApp
npx cordova platform add browser
Ответ 17
В Mac OS:
-
Исправить разрешение:
sudo chown -R <USER LOGIN>:wheel/usr/local/*
-
Установить кордову:
npm install -g cordova
Путь Кордова установлен: /usr/local/Cellar/node/11.10.1/bin/cordova
-
Тип:
cordova
если сообщение показывать:
-bash: cordova: command not found
-
Карта кордовы к usr/bin:
sudo ln -s/usr/local/Cellar/node/11.10.1/bin/cordova/usr/bin/
-
Re-типа:
cordova
Баш кордова работала