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

Переключение реестра npm на основе каталога

Недавно я начал развиваться для node. Компания, в которой я работаю, имеет внутренний реестр npm. Я хочу знать, как использовать разные настройки реестра в зависимости от того, где я развиваюсь. Для иллюстрации у меня есть структура каталогов, как показано ниже:

~/Code
|
| -- My Projects
| |
| | -- Proj 1 
| | -- Proj 2
|
|-- My Company
  |
  |--Proj 1 
  |--Proj 2

Когда я развиваюсь в одном из проектов в "Мой проект", я бы хотел, чтобы реестр npm указывал на https://registry.npmjs.org ( реестр по умолчанию). Но когда я развиваюсь в одном из проектов в "Моя компания", я хочу, чтобы реестр npm указывал на реестр конкретной компании. Прямо сейчас, мой наивный метод - использовать npm config set registry для обновления реестра.

4b9b3361

Ответ 1

Существуют два разных варианта использования частного реестра npm:

  • Установка: используйте флаг --reg или --registry:

    npm install mypackage --reg http://myreg.npmjitsu.com
    
  • Публикация: вы также можете использовать --reg или --registry, но я настоятельно рекомендую вам использовать параметр publishConfig в вашем файле package.json (см. документация npm)

    {
      "publishConfig": {
        "registry": "http://myreg.npmjitsu.com"
      }
    }
    

    Это позволяет разработчикам случайно публиковать частные модули в публичный реестр, забыв флаг --registry

Итак, добавьте publishConfig ко всем package.json для вашей компании, используя --registry при установке из своего частного npm.

Ответ 2

Реестр должен быть необходим только при установке пакетов. Вы можете использовать это, если хотите установить из частного реестра.

npm install packagename --registry https://myregistryurl

Это тоже может работать.

npm install https://myregistryurl/packagename

и просто установите обычный способ, когда вы используете публичный реестр.

Ответ 3

https://github.com/npm/npm/issues/4751

npm недавно добавила поддержку для файлов .npmrc для каждого пакета, должна делать то, что вы хотите.