Подтвердить что ты не робот

#ИМЯ?

Я не собираюсь задавать вопрос, но ответьте на него, так как я нашел этот совет нигде в сети до сих пор и только что понял это сам. Хорошо делиться, правильно?


Итак, в командной строке я сделал это:

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

Результат был таким же, хотя я не мог назвать ни кордону, ни телефонную записями через командную строку (я включаю эти два последних сообщения о отрицании на всякий случай, если кто-то ищет их).

4b9b3361

Ответ 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

Чтобы установить его в правильном месте:

  • запустите: npm config set prefix/usr/local

  • Затем переустановите ваши пакеты npm с помощью -g: npm install -g cordova т.д.

Ответ 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

    Баш кордова работала