1

Я не знаю, что происходит, но ни один из моих установленных узловых пакетов на самом деле не зарегистрирован.

npm и node работают нормально, но если я буду sudo npm install -g ffmpeg или brew , они будут перечислены в /usr/local/lib/node_modules но brew -v и ffmpeg -v ничего не делают "команда не найдена"

Любая помощь очень ценится, я довольно новичок в командной строке. Я думаю, что я запутался в разнице между npm и brew ... Имеет ли npm символическую ссылку на командную строку или только разрешает require("brew") внутри экземпляров узла?

Однажды я выполнил некоторые инструкции по регистрации "возвышенного" в качестве псевдонима командной строки. Не думаю, что это должно на что-то повлиять, но я даже не знаю, где искать

2 ответа2

2

Что-нибудь отображается, если вы запускаете npm get prefix ? (Например, я скажу, что «/usr/local» возвращается после выполнения команды)

Если что-либо возвращается после выполнения вышеупомянутой команды, проверьте, какая переменная среды PATH установлена, запустив echo $PATH (Снова для примера скажу "/usr/bin:/bin:/usr/sbin:/sbin "возвращается после выполнения этой команды)

Если префикс, возвращаемый из префикса get из npm get prefix , не отображается в вашем PATH - что верно для приведенного выше примера, поскольку «/usr/local/» отсутствует в PATH - вам придется установить переменную PATH. Чтобы установить свой путь

Если ваша оболочка - Bash, запустите: export PATH="[prefix]/bin:$PATH" >> ~/.bash_profile где [prefix] - это возвращаемое значение npm get prefix

Итак, снова используя «/usr/local» в качестве примера, замените «[prefix]» на «/usr/local», как показано ниже
export PATH="/usr/local/bin:$PATH" >> ~/.bash_profile
тогда делай
source ~/.bash_profile

(Вы сказали, что вы новичок в командной строке, поэтому, если это не имеет особого смысла, оставьте комментарий, и я постараюсь дать дополнительные разъяснения)

0

Проблема заключается в том, что npm устанавливает только модули узлов, которые должны быть необходимы во время выполнения Node.js или выполняться как параметр для node .

Homebrew brew и Advanced Package Tool (Linux) apt-get - это менеджеры пакетов системного уровня, независимые от Node.js, которые обычно размещают исполняемые скрипты оболочки в нужном месте, где оболочка ищет кандидатов, аналогично цепочке прототипов JavaScript. (echo $PATH обычно показывает /usr/local/bin или /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin)


Вы можете запустить узел REPL, выполнив node в командной строке (и впоследствии вы можете написать JavaScript, чтобы запросить пакет). Альтернативой является написание файла script.js, который использует пакет, затем выполнение сценария с помощью node script.js или даже иногда node node_modules/package_name/bin/node_executable_file

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .