Где npm устанавливает пакеты?

679

Может ли кто-нибудь сказать мне, где я могу найти модули Node.js, которые я установил с помощью npm?

  • 3
    на Linux $HOME/.npm-global/lib/node_modules это $HOME/.npm-global/lib/node_modules
Теги:
location
npm

18 ответов

773
Лучший ответ

Глобальные библиотеки

Вы можете запустить npm list -g чтобы увидеть, где установлены глобальные библиотеки.

В системах Unix они обычно помещаются в /usr/local/lib/node или /usr/local/lib/node_modules при глобальной установке. Если вы установите NODE_PATH среды NODE_PATH в этот путь, модули могут быть найдены по узлу.

Windows XP - %USERPROFILE%\AppData\npm\node_modules
Windows 7, 8 и 10 - %USERPROFILE%\AppData\Roaming\npm\node_modules

Не -g лобальные библиотеки

Библиотеки не -g установлены в node_modules в той папке, в которой вы находитесь.

Вы можете запустить npm list чтобы увидеть установленные не -g lobal библиотеки для вашего текущего местоположения.

  • 19
    Если вы используете nvm, ваши глобальные модули могут находиться в одном из нескольких мест, в зависимости от версии узла, который вы используете в данный момент. Лучший способ - использовать npm list -g как предложено в другом ответе.
  • 69
    у меня не работает, показывает только папку bin. «npm root -g» работает.
Показать ещё 8 комментариев
463

Команда npm root сообщит вам эффективный каталог установки ваших пакетов npm.

Если текущим рабочим каталогом является пакет узлов или подкаталог пакета узлов, npm root сообщит вам локальный каталог установки. npm root -g покажет глобальный установочный корень независимо от текущего рабочего каталога.

Смотрите документацию.

  • 1
    +1 на этот ответ (по крайней мере, под Linux Mint 17 Qianna и npm 3.9.5). Моя глобальная папка node_modules находится в /usr/local/lib/node_modules . Когда я делаю то есть sudo npm uninstall browserify -g (при условии, что я делал sudo npm install browserify -g раньше), он удаляет его оттуда.
  • 7
    Это гораздо более полезный ответ, поскольку выходные данные подходят для составления больших команд без извлечения пути из набора выходных данных.
Показать ещё 1 комментарий
155

Используйте команду npm root -g чтобы узнать ваш глобальный путь npm.

Пример:

$ npm root -g
/usr/local/lib/node_modules
  • 13
    @ btburton42, за исключением того, что это дурак Джо Хокинса 2 года спустя ..
66

Для модулей, установленных по всему миру:

Другие ответы дают вам ответы, специфичные для платформы, но общий:

Когда вы устанавливаете глобальный модуль с помощью npm install -g something, npm ищет конфигурационную переменную prefix, чтобы узнать, где установить модуль.

Вы можете получить это значение, запустив npm config get prefix

Чтобы отобразить все глобальные модули, доступные в этой папке, используйте npm ls -g --depth 0 (depth 0, чтобы не отображать их зависимости).

Если вы хотите изменить путь глобальных модулей, используйте npm config edit и поместите prefix = /my/npm/global/modules/prefix в файл.

При использовании некоторых инструментов, таких как nodist, они меняют путь установки по умолчанию для платформы npm.

  • 1
    Вы ответили на мой дополнительный вопрос: «Может кто-нибудь сказать мне, как я могу изменить расположение модулей Node.js?» Примечание: причина, по которой это было важно для меня, заключалась в том, что мне больше не приходилось менять ПУТЬ. Я раскомментировал предложение по умолчанию в файле npmrc, что {npm config get prefx} открывается.
57

В окнах я использовал npm list -g, чтобы узнать по умолчанию, что мои (глобальные) пакеты устанавливались на C:\Users\[Username]\AppData\Roaming\npm.

  • 7
    Просто к сведению - это% appdata% \ npm исполняющего пользователя
15

В более ранних версиях модули NPM всегда помещались в /usr/local/lib/ node или везде, где вы указали корень npm в файле .npmrc. Однако в NPM 1.0+ модули устанавливаются в двух местах. У вас могут быть установлены модули локально для вашего приложения в /.node_modules или вы можете установить их глобально, что будет использовать выше.

Дополнительную информацию можно найти на https://github.com/isaacs/npm/blob/master/doc/install.md

  • 4
    Что следует отметить - с модулями 1.0 хранятся в / usr / local / lib / node_modules.
  • 0
    Ссылка в ответе не работает, но это хороший ресурс: npmjs.org/doc/faq.html
12

Если вы ищете исполняемый файл, установленный npm, возможно, потому что вы хотите поместить его в вашу переменную PATH, вы можете просто сделать

npm bin

или же

npm bin -g
  • 0
    Если вы глобально установили пакеты npm, где узел был установлен с помощью homebrew, а затем npm был обновлен до самого npm, возможно, вы получаете command not found error. Если это так, добавьте приведенное выше в PATH: export PATH=$PATH:$(npm bin -g) вуаля
11

Не прямой ответ, но может помочь....

У npm также есть папка кеша, которую можно найти, запустив npm config get cache (%AppData%/npm-cache в Windows).

Модули npm сначала загружаются здесь, а затем копируются в глобальную папку npm (%AppData%/npm/Roaming в Windows) или в папку, специфичную для проекта (your-project/node_modules).

Так что, если вы хотите отслеживать пакеты npm, и как-то, список всех загруженных пакетов npm (если кэш npm не очищен), взгляните на эту папку. Структура папок выглядит как {cache}/{name}/{version}

Это может также помочь https://docs.npmjs.com/cli/cache

11

Если модуль был установлен с глобальным (-g) флагом, вы можете получить родительское местоположение, выполнив следующую команду

npm получить префикс

или

npm ls -g --depth = 0

который будет печатать местоположение вместе со списком установленных модулей

Приветствия: -)

9

Самый простой способ - сделать

npm list -g

чтобы просмотреть пакет и просмотреть их установленное местоположение.

Я установил npm через chololatey, поэтому местоположение

C:\MyProgramData\шоколадным\Lib\nodejs.commandline.0.10.31\инструменты\node_modules

C:\MyProgramData\- это шоколадное место репо.

5

Вы можете найти глобально установленные модули командой

npm list -g

Он предоставит вам место, где были установлены модули node.js.

C:\Users\[Username]\AppData\Roaming\npm

Если вы устанавливаете node.js модули локально в папку, вы можете ввести следующую команду, чтобы увидеть местоположение.

npm list
3

Из docs:

Пакеты упаковываются в папку node_modules под префиксом. При установке локально это означает, что вы можете require ( "packagename" ) для загрузки основного модуля или require ( "packagename/lib/path/to/sub/module" ) для загрузки других модулей.

Глобальные установки в системах Unix переходят на {prefix}/lib/ node_modules. Глобальная установка в Windows переходит на {prefix}/node_modules (то есть нет lib.)

Скопированные пакеты устанавливаются одинаково, за исключением того, что они сгруппированы вместе в подпапке соответствующей папки node_modules с имя этого префикса области с помощью символа @, например. Установка npm @myorg/package помещает пакет в {Префикс}/node_modules/@MyOrg/пакет. См. Область для более подробной информации.

Если вы хотите потребовать() пакет, то установите его локально.

Вы можете получить {prefix} с помощью npm config get prefix. (Полезно, если вы установили node с nvm).

Читайте о locally.
Читайте о globally.

3

Из docs:

В npm 1.0 есть два способа установить вещи:

  • глобально - это отбрасывает модули в {prefix}/lib/node_modules и помещает исполняемые файлы в {prefix}/bin, где {prefix} обычно что-то вроде /usr/local. Он также устанавливает man-страницы в {prefix}/share/man, если они поставлены.

  • local - это устанавливает ваш пакет в текущем рабочем каталоге. Node модули входят ./node_modules, исполняемые файлы входят в ./node_modules/.bin/, а man man arent установлен вообще.

Вы можете получить {prefix} с помощью npm config get prefix. (Полезно, если вы установили Node с nvm).

2

В Ubuntu 14.04 они установлены на

/USR/Library/node_modules

2

Как говорят другие ответы, лучший способ - сделать

npm list -g

Однако, если у вас установлено большое количество пакетов npm, вывод этой команды может быть очень длинным и большой болью для прокрутки вверх (иногда даже не возможно прокручивать ту сторону назад).

В этом случае проведите вывод в программу more, например,

npm list -g | more
1

Windows 10: Когда я запустил npm prefix -g, я заметил, что место установки находится внутри пути оболочки git, который я использовал для установки. Даже если это местоположение добавлено в путь, команда из глобально установленного пакета не будет распознана. Исправлено:

  1. работает npm config edit
  2. изменив префикс на "C:\Users\имя пользователя \AppData\Roaming\npm"
  3. добавив этот путь к системной переменной пути
  4. переустановка пакета с помощью -g.
1

Если вы пытаетесь получить доступ к своему глобальному каталогу из кода, вы можете вернуться назад из process.execPath. Например, чтобы найти wsproxy, который находится в {NODE_GLOBAL_DIR}/bin/wsproxy, вы можете просто:

path.join(path.dirname(process.execPath), 'wsproxy')
  • 1
    Это то что мне нужно
0

Кстати, npm будет искать node_modules в родительских папках (вплоть до самого root), если не может найти их в локальной папке.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню