Как установить пользовательское расположение для локальной установки пакета npm?
можно ли указать пользовательское назначение пакета для npm install, либо через флаг команды или переменную окружения?
по умолчанию локальные установки npm заканчиваются в node_modules в текущем каталоге, но я хочу его установить в node_modules в другой каталог, например vendor/node_modules. Как я могу это сделать?
5 ответов:
TL; DR
вы можете сделать это с помощью
--prefixфлаг и--global* флаг.pje@friendbear:~/foo $ npm install bower -g --prefix ./vendor/node_modules [email protected] /Users/pje/foo/vendor/node_modules/bower*несмотря на то, что это "глобальная" установка, установленные бункеры не будут доступны через командную строку, если на
PATH.TL; R
каждый настраиваемый атрибут
npmможет быть установлен в любом из шести разных местах. В порядке очередности:
- Флаги Командной Строки:
--prefix ./vendor/node_modules- Переменные Среды:
NPM_CONFIG_PREFIX=./vendor/node_modules- Файл Конфигурации Пользователя:
$HOME/.npmrcилиuserconfigпараметр- Глобальный Конфигурационный Файл:
$PREFIX/etc/npmrcилиuserconfigпараметр- Встроенный Конфигурационный Файл:
path/to/npm/itself/npmrc- Настройки По Умолчанию: node_modules/npmconf / config-defs.js
по умолчанию, локально установленные пакеты идут в
./node_modules. глобальные идут вprefixпеременной config (/usr/localby неисполнение.)вы можете запустить
npm config listчтобы увидеть текущую конфигурацию иnpm config editизменить это.PS
в общем,
npmдокументация действительно полезна. Элемент папки раздел является хорошим структурным обзором НПМ и config раздел отвечает на этот вопрос.
если вы хотите это в config, вы можете установить npm config следующим образом:
npm config set prefix "$(pwd)/vendor/node_modules"или
npm config set prefix "$HOME/vendor/node_modules"проверьте свою конфигурацию с помощью
npm config ls -lили как @pje говорит и использовать
--prefixфлаг
для OSX, вы можете перейти к вашему пользователю
$HOME(вероятно / Users / yourname/) и, если он еще не существует, создайте.npmrcфайл (файл, который npm использует для настройки пользователя) и создайте каталог для ваших пакетов npm, которые будут установлены (например, /Users/yourname/npm). В том. файл npmrc, установите " префикс "в свой новый каталог npm, в котором будут установлены" глобально "установленные пакеты npm; эти" глобальные " пакеты, очевидно, будут доступны только для вашей учетной записи пользователя.In .npmrc:
prefix=${HOME}/npmзатем запустите эту команду из командной строки:
npm config ls -lон должен выдавать выходные данные как в вашей собственной локальной конфигурации, так и в глобальной конфигурации npm, и вы должны видеть, что ваша локальная конфигурация префикса отражена, вероятно, в верхней части длинного списка выходных данных.
для безопасности я рекомендую этот подход к настройке поведения npm вашей учетной записи пользователя над chown-ING your
/usr/localпапки, которые я видел рекомендуется в другом месте.
после поиска этого я сам хочу, чтобы несколько проектов с общими зависимостями были суше, я нашел:
- локальная установка-это путь узла для всего, что вы хотите использовать через
require()- установка глобально предназначена для двоичных файлов, которые вы хотите в своем пути, но не предназначена ни для чего через
require()- использование префикса означает, что вам нужно добавить соответствующий
binиmanпути$PATHnpm link( info) позволяет использовать локальную установку в качестве источника для глобалс→ придерживайтесь пути узла и установите локально
ref:
в Windows 7, например, можно использовать следующий набор команд/операций.
создать личную переменную окружения, двойные обратные косые черты обязательны:
- имя переменной:
%NPM_HOME%- значение переменной:
C:\SomeFolder\SubFolder\теперь установите значения конфигурации для новых папок (например, имена файлов):
- установите папку npm
npm config set prefix "%NPM_HOME%\npm"
- установить npm-папка кэша
npm config set cache "%NPM_HOME%\npm-cache"
- установите временную папку npm
npm config set tmp "%NPM_HOME%\temp"дополнительно можно очистить содержимое исходных папок до конфигурация изменена.
удалить npm-cache
npm cache clearсписок модулей npm
npm -g lsудалить НПМ модули
npm -g rm name_of_package1 name_of_package2
Comments