Я пытался обновить phonegap
через, npm
когда у меня начались проблемы. Короче говоря, node_modules
на моем компьютере есть два каталога.
/usr/local/lib/node_modules
/usr/local/share/npm/lib/node_modules
Когда я запускаю npm upgrade -g phonegap
, кажется, что npm
обновляет копию пакета, который находится в /usr/local/lib/node_modules
. Однако, если я which phonegap
обнаружу, что символическая ссылка указывает на более старую установку по адресу /usr/local/share/npm/lib/node_modules
.
Кроме того, когда я пытаюсь установить автономный пакет, например express
, файлы устанавливаются в /usr/local/lib/node_modules
каталог, но нигде в моем каталоге не создается символическая ссылка на исполняемый файл.$PATH
.
Два вопроса:
- Какой каталог подходит для узловых модулей в Mac OS X?
Как я могу настроитьnpm
связывание исполняемых файлов в моем$PATH
при установке программного обеспечения?
Бонусные баллы: node
влияет ли способ установки на конфигурацию? Вариантов очень много .
РЕДАКТИРОВАТЬ : Я понял, что в моем файле были созданы символические ссылки /usr/local/bin
, но мой .bash_profile
был настроен /usr/local/share/npm/bin
раньше, чем /usr/local/bin
в моем $PATH
. Я смутно помню, как когда-то добавлял этот путь в свой профиль, но не знаю почему.
Итак, теперь возникает вопрос: как я получил два разных node_modules
каталога на моем компьютере и почему я должен иметь свой node_modules
в share/npm/lib
подкаталоге, а не прямо в нем /usr/local/lib
?
Второй Томас Дэвид Кехо , со следующей оговоркой -
Если вы используете диспетчер версий узлов (nvm), ваши глобальные модули узлов будут храниться под той версией узла, которую вы используете во время сохранения модуля.
Итак
~/.nvm/versions/node/{version}/lib/node_modules/
.источник
чтобы проверить глобальное расположение npm_modules
источник
Если вы хотите знать, где находятся ваши пакеты NPM, вам следует:
which npm // locate a program file in the user's path SEE man which // OUTPUT SAMPLE /usr/local/bin/npm la /usr/local/bin/npm // la: aliased to ls -lAh SEE which la THEN man ls lrwxr-xr-x 1 t04435 admin 46B 18 Sep 10:37 /usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
Итак, учитывая, что npm сам является пакетом NODE, он устанавливается в том же месте, что и другие пакеты ( EUREKA ). Итак, чтобы подтвердить, вы должны cd в node_modules и перечислить каталог.
cd /usr/local/lib/node_modules/ ls #SAMPLE OUTPUT @angular npm .... all global npm packages installed
ИЛИ ЖЕ
Согласно комментарию @anthonygore
источник
npm root -g
иwhich npm
не дал тех же результатов. Я хотел удалить,expo-cli
и мне это удалось, удаливexpo
иexpo-cli
каталоги из/usr/local/bin/npm
. Спасибо @ T04435!