Ответы:
Вы можете использовать --prefix
опцию:
mkdir -p ./install/here/node_modules
npm install --prefix ./install/here <package>
Пакеты будут установлены в ./install/here/node_modules
. Это mkdir
необходимо, так как в противном случае npm может выбрать уже существующий node_modules
каталог выше по иерархии. (См. Документацию npm к папкам .)
npm install
(без имени пакета)? Я сделал это напрямую, но затем npm ищет package.json
в {prefix}
. Я также хочу, чтобы у вас была возможность войти packages.json
в корневой каталог проекта и одновременно установить все пакеты {project root}/{project webroot}
.
npm install
, но --prefix
кажется более удачным решением, если оно не вызывало рекурсию.
В документации сказано: используйте опцию префикса вместе с опцией global :
Префикс конфиг по умолчанию в том месте , где установлен узел. В большинстве систем это / usr / local . В Windows это точное местоположение двоичного файла node.exe. В системах Unix это на один уровень выше, поскольку узел обычно устанавливается в {prefix} / bin / node, а не в {prefix} /node.exe .
Когда глобальный флаг установлен, npm устанавливает вещи в этот префикс. Когда он не задан, он использует корень текущего пакета или текущий рабочий каталог, если его еще нет в пакете.
(Акцент ими)
Таким образом, в вашем корневом каталоге вы можете установить с
npm install --prefix <path/to/prefix_folder> -g
и он установит node_modules
папку в папку
<path/to/prefix_folder>/lib/node_modules
require
установить пакеты глобально, не так ли?
Начиная с версии 3.8.6 npm, вы можете использовать
npm install --prefix ./install/here <package>
установить в указанный каталог. NPM автоматически создает node_modules
папку, даже если node_modules
каталог уже существует в верхней иерархии. Вы также можете иметь package.json
в текущем каталоге, а затем установить его в указанном каталоге, используя --prefix
параметр:
npm install --prefix ./install/here
Начиная с npm 6.0.0 вы можете использовать
npm install --prefix ./install/here ./
установить package.json из текущего каталога в каталог "./install/here". На Mac я заметил одну вещь: он создает символическую ссылку на родительскую папку внутри директории node_modules. Но это все еще работает.
ПРИМЕЧАНИЕ: NPM учитывает путь, который вы указали в --prefix
опции. Это разрешает согласно документации npm для папок , только когда npm install
используется без --prefix
опции.
Can't install <current directory>: Missing package name
package.json
файл./install/here