Как установить npm в указанный каталог?

Можно ли указать целевой каталог при запуске npm install <package>?

Ответ 1

Вы можете использовать опцию --prefix:

mkdir -p ./install/here/node_modules
npm install --prefix ./install/here <package>

Затем пакет будет установлен в ./install/here/node_modules. mkdir необходимо, так как npm в противном случае может выбрать уже существующий каталог node_modules, расположенный выше в иерархии. (См. npm документация в папках.)

Ответ 2

В документации было указано: Используйте опцию префикса вместе с глобальной опцией:

Конфигурация префикс по умолчанию устанавливается в том месте, где установлен node. На в большинстве систем это /usr/local. В окнах это точная расположение двоичного файла node.exe. В системах Unix он находится на одном уровне, поскольку node обычно устанавливается в {префикс}/bin/node, а не {префикс}/node.exe.

Когда установлен флаг global, npm устанавливает вещи в этот префикс. Когда он не установлен, он использует корень текущего пакета или текущий рабочий каталог, если он уже не в пакете.

(Подчеркивание ими)

Итак, в корневом каталоге вы можете установить с помощью

npm install --prefix <path/to/prefix_folder> -g

и он установит папку node_modules в папку

<path/to/prefix_folder>/lib/node_modules

Ответ 3

Начиная с версии npm версии 3.8.6 вы можете использовать

npm install --prefix ./install/here <package>

для установки в указанный каталог. NPM автоматически создает папку node_modules, даже если каталог node_modules уже существует в иерархии с более высоким уровнем. Вы также можете иметь package.json в текущем каталоге, а затем установить его в указанном каталоге с помощью опции --prefix:

npm install --prefix ./install/here

ПРИМЕЧАНИЕ. NPM выполняет пометку пути, который вы указали с помощью параметра --prefix. Он решает согласно npm документация по папкам, только когда npm install используется без опции --prefix.