Проблемы публикации и установки пакета npm в частном реестре - PullRequest
2 голосов
/ 30 мая 2019

Я закончил пакет (1 файл js) и хочу опубликовать его на артефакте.

package.json:

{
  "name": "@company/package_name",
  "main": "dist/index.js",
  "publishConfig": {
    "registry": "http://artifactory_url"
  },
  "files": ["dist/index.js"],
  "devDependencies": {
    "tslint": "^5.15.0",
    "webpack": "^4.29.6",
  },
  "dependencies": {
    "axios": "^0.18.0"
  }
}

Я публикую это:

npm login --registry=https://artifacory_url --scope=@company
npm publish

мой пакет npm теперь доступен на артефакте (1 файл js и package.json)

Теперь, если я хочу установить его:

npm install @company/package_name --registry=https://artifacory_url

жалуется, что в реестре npm нет зависимости:

Not Found - GET https:artifactory_url/axios - not_found
npm ERR! 404 
npm ERR! 404  'axios@^0.18.0' is not in the npm registry

что, конечно, правда, у меня в реестре не опубликовано axios, но я ожидал, что оно будет получено из реестра npm.

Я не уверен в стратегии, которой нужно следовать. Я использую webpack, поэтому axios уже включен в мой файл dist/index.js. Должен ли я относиться к нему как к devDependencies вроде tslint? Кажется, это не зависимость от меня ...

1 Ответ

1 голос
/ 30 мая 2019

Разработчики npm не собираются облегчать / разрешать выпуск сразу нескольким реестрам, поскольку это может привести к таким проблемам, как:

  • Данная версия может находиться в одном реестре, но не в другом
  • В каждом реестре может быть выпущена одна и та же версия с различным кодом

Для решения проблем, связанных с частными / общедоступными реестрами, большинство частных реестров используют функцию прокси (если запрашиваемый пакет находится вчастное хранилище обслуживает его, в противном случае делегируйте запрос в публичный реестр).

Многие решения для реестров также предлагают функцию репликации.

С помощью этой функции вы сможете публиковать только в одном реестре и обслуживать его из нескольких.

Вы используете артефакт, и они позволяют настраивать его переписывать внешние зависимости.

Установите флажок Включить перезапись зависимостей в расширенной конфигурации виртуального репозитория npm.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...