Используя myproject/.npmrc с реестром
Как настроить файл .npmrc в моем проекте, где я могу определить свой собственный частный реестр? Я не хочу иметь такую конфигурацию в моей пользовательской конфигурации .npmrc. Каждый другой разработчик должен иметь возможность всего git clone
проекта и запускать npm install
.
Это то, что у меня есть до сих пор:
// .npmrc
registry=https://npm.fury.io/AUTH_TOKEN/me/
// package.json:
{
"name": "webapp",
"description": "",
"version": "1.0.0",
"private": true,
"dependencies": {
"jquery": "1.2.3",
"myPrivateLibFromNpmFury": "0.0.4"
}
}
npm install myPrivateLibFromNpmFury
возвращает
npm ERR! 404 Registry returned 404 for GET on https://registry.npmjs.org/myPrivateLibFromNpmFury
Ответы
Ответ 1
Как было указано @Paulpro и @Alexey B., большинство его частей уже работало, но я не мог сразу это увидеть, может быть, потому, что я не перезагрузил среду bash должным образом. Но после этого я столкнулся с другой проблемой с npm outdated
, которая была вызвана URL-адресом реестра. Оказывается, npm может иметь только один URL-адрес реестра (что довольно сумасшедшее), и если вы хотите использовать частные и общедоступные модули npm, вам необходимо проксировать публичный реестр npm-модулей через ваш частный реестр. К счастью, это то, что поддерживает fury.io, поэтому в моем случае вместо этого:
//.npmrc
registry=https://npm.fury.io/AUTH_TOKEN/me/
Мне нужно использовать это:
//.npmrc
registry=https://npm-proxy.fury.io/AUTH_TOKEN/USER_NAME/
UPDATE:
Возможно, проблема с npm связана с одним реестром. Сначала вам нужно добавить во все ваши частные пакеты scope.
С помощью .npmrc
теперь вы можете связать регистр для областей, и вам больше не нужны никакие прокси.
//.npmrc
@project_a:registry=https://npm.fury.io/AUTH_TOKEN/USER_NAME/
@project_b:registry=https://npm.fury.io/AUTH_TOKEN/USER_NAME/
@company_a:registry=https://npm.fury.io/AUTH_TOKEN/USER_NAME/
Ответ 2
Замечание к документам
Файл конфигурации для каждого проекта
При работе локально в проекте, файл .npmrc в корне проекта (т.е. брата из node_modules и package.json) будет установлен значения конфигурации, специфичные для этого проекта.
Обратите внимание, что это относится только к корню проекта, который вы запуск npm in. Это не влияет на публикацию вашего модуля. Для Например, вы не можете опубликовать модуль, который заставляет себя устанавливать глобально или в другом месте.
Я попытался создать файлы, указанные вами в вопросе (package.json и .npmrc), все работает нормально. Может быть, вы где-то опечалились?
frgt$ npm i myPrivateLibFromNpmFury --verbose
npm info using [email protected]
npm info using [email protected]
npm verb request uri https://npm.fury.io/AUTH_TOKEN/me/myPrivateLibFromNpmFury
npm verb request no auth needed
npm info attempt registry request try #1 at 14:36:10
npm verb request id 23f09acc4e7021c7
npm http request GET https://npm.fury.io/AUTH_TOKEN/me/myPrivateLibFromNpmFury
npm http 403 https://npm.fury.io/AUTH_TOKEN/me/myPrivateLibFromNpmFury
Ответ 3
Вы должны использовать бесшовный прокси:
registry=https://npm-proxy.fury.io/AUTH_TOKEN/me/