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

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

Ответ 1

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

Вы можете запустить npm list -g, чтобы увидеть, какие глобальные библиотеки установлены и где они расположены. Используйте npm list -g | head -n 1 для усеченного вывода, показывающего только путь.

В системах 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

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

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

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

При установке используйте опцию -g для глобальной установки

npm install -g pm2 - pm2 будет установлен глобально. Затем его обычно можно найти в /usr/local/lib/node_modules (используйте npm root -g, чтобы проверить, где.)

npm install pm2 - pm2 будет установлен локально. Затем он обычно находится в локальном каталоге в /node_modules

Ответ 2

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

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

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

Ответ 3

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

Пример:

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

Ответ 4

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

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

Когда вы устанавливаете глобальный модуль с помощью 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 в файл или используйте npm config set prefix/my/npm/global/modules/prefix.

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

Ответ 5

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

Ответ 6

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

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

Ответ 7

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

npm bin

или же

npm bin -g

Ответ 8

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

npm get prefix

или же

npm ls -g --depth=0

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

Ура :-)

Ответ 9

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

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

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

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

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

Ответ 10

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

npm list -g

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

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

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

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

Ответ 11

Чтобы получить компактный список без зависимостей, просто используйте

npm list -g --depth 0

Ответ 12

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

npm list -g

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

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

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

npm list

Ответ 13

Из 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).

Ответ 14

Из 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.

Ответ 15

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

npm list -g

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

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

npm list -g | more

Ответ 16

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

/usr/lib/node_modules

Ответ 17

Развивая другие ответы -

npm list -g

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

Если вы хотите вывести этот список в файл, который вы можете легко найти в текстовом редакторе:

npm list -g > ~/Desktop/npmfiles.txt

Ответ 18

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

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

Там также как работает npm cli @ec9fcc1/lib/npm.js#L254 с:

path.resolve(process.execPath, '..', '..')

См. также ec9fcc1/lib/install.js#L521:

var globalPackage = path.resolve(npm.globalPrefix,
                                 'lib', 'node_modules', moduleName(pkg))

Где globalPrefix имеет значение по умолчанию в ec9fcc1/lib/config/defaults.js#L92-L105 из:

if (process.env.PREFIX) {
    globalPrefix = process.env.PREFIX
} else if (process.platform === 'win32') {
    // c:\node\node.exe --> prefix=c:\node\
    globalPrefix = path.dirname(process.execPath)
} else {
    // /usr/local/bin/node --> prefix=/usr/local
    globalPrefix = path.dirname(path.dirname(process.execPath))

    // destdir only is respected on Unix
    if (process.env.DESTDIR) {
        globalPrefix = path.join(process.env.DESTDIR, globalPrefix)
    }
}

Ответ 19

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

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

Ответ 20

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

Ответ 21

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

Примечание. Если вы находитесь где-то в папке, наберите cd.. пока не окажетесь в каталоге C:. Затем введите cd %USERPROFILE%\AppData\Roaming\npm\node_modules. И волшебным образом %USERPROFILE% изменится на Users\YourUserProfile\. Я просто хотел уточнить идеи, на которые ссылался Decko в первом ответе. npm list -g перечислит все биты, которые вы установили глобально. Если вам нужно найти связанный с вашим проектом npm package тогда cd 'your angular project xyz', затем запустите npm list. Он покажет список модулей в npm package. Это также даст вам список отсутствующих dependencies, и вам может потребоваться эффективный запуск этого проекта.