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

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

16 ответов


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

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

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

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

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

установлены неглобальные библиотеки node_modules sub папка в папке, в которой вы находитесь в настоящее время.

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


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

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

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


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

пример:

$ npm root -g
/usr/local/lib/node_modules

для глобально установленных модулей:

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

при установке глобального модуля с 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.


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


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

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


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

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

или

npm ls-g --глубина=0

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

Ура :-)


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

у 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


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

npm bin

или

npm bin -g

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

список НПМ-g

в список и места их установки.

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

C:\MyProgramData\chocolatey\lib\nodejs.командная строка.0.10.31\tools\node_modules

C:\MyProgramData\ является местоположением РЕПО chocolatey.


вы можете найти установленные модули по команде

npm list -g

он предоставит вам местоположение, где узел.установлены модули js.

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

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

npm list

С docs:

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

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

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

вы можете получить свой {prefix} С npm config get prefix. (Полезно при установке узла с nvm).


С docs:

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

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

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

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

Вы можете получить свой {prefix} с npm config get prefix. (Полезно при установке узел с НВМ).

читать про локально.
Читайте о .


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

/ usr/lib / node_modules


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

npm list -g

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

в этом случае, трубы в , такой

npm list -g | more

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

path.join(path.dirname(process.execPath), 'wsproxy')