Подтвердить что ты не робот

Используя 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

4b9b3361

Ответ 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/