Убедиться, что ваш пакет npm работает должным образом после публикации на npm, может стать кошмаром. Поскольку он может иметь несколько разных рабочих сред, он может вести себя на вашем компьютере иначе, чем на сервере. Фактически, исправление ошибки включает в себя повторную публикацию вашего пакета, что увеличивает его номер версии.

Здесь, в Страпи, мы много раз сталкивались с этой ситуацией. Итак, мы создали частный локальный реестр npm с Verdaccio и ngrok, чтобы протестировать наш пакет на сервере перед его выпуском на npm.

В этом посте мы собираемся объяснить, как создать общедоступный реестр npm, предназначенный для тестирования вашего пакета npm как на ваших машинах, так и на серверах перед его официальным выпуском.

Настройте свой частный локальный реестр npm

Этот первый шаг позволит вам опубликовать пакет в вашем частном локальном реестре, а не в самом реестре npm. Это означает, что вместо того, чтобы устанавливать ваш пакет из самого npm, он будет загружен из вашего частного локального реестра, если он существует. Если нет, то он будет взят из официального реестра npm (https://registry.npmjs.com).

Настройка

Чтобы создать свой частный сервер репозитория npm, вам необходимо установить Verdaccio: частный сервер репозитория npm.

npm install -g verdaccio

Далее запускаем сервер.

verdaccio

ℹ️ Вы должны увидеть интерфейс по следующему адресу http: // localhost: 4873.

Обновить реестр по умолчанию

Затем мы устанавливаем http: // localhost: 4873 в качестве реестра по умолчанию.

npm config set registry http://localhost:4873

Добавить нового пользователя

Verdaccio автоматически создает файл конфигурации, но не регистрирует для вас первого пользователя. Выполните следующую команду, чтобы создать нового пользователя в частном локальном реестре.

npm adduser

Используйте, например, следующие учетные данные:

  • Имя пользователя: test
  • Пароль: test
  • Электронная почта: [email protected]

Создать пакет

Мы собираемся создать очень простой пакет, чтобы опубликовать его позже. Прежде всего, создайте пустую папку на нашей машине.

cd /path/to/a/sandbox/folder mkdir foo-package cd foo-package

Во-вторых, инициализируйте свой пакет, создав простой package.json файл.

npm init

После ответа по умолчанию (нажимайте Enter для каждого вопроса) файл package.json должен выглядеть следующим образом:

{
  "name": "foo-package",
  "version": "1.0.0",
  "description": "Basic package to test publication",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "MIT"
}

Наконец, создайте index.js файл, содержащий логику вашего пакета.

module.exports = () => {  
  console.log('My package does nothing!');
};

Публикация пакета локально

Пакет готов к публикации в вашем частном локальном реестре. Чтобы опубликовать его, нет ничего проще, чем выполнить следующую команду в корне пакета.

npm publish

Пользователи Mac OS могут найти свой пакет в /Users/xxx/.config/verdaccio/storage и убедиться, что он был успешно опубликован.

Теперь, когда ваш пакет опубликован в нашем тестовом реестре (http: // localhost: 4873), только вы можете получить к нему доступ и загрузить его. Чтобы протестировать его на других машинах или серверах, вам нужно открыть его другим ...

Сделать частный локальный реестр общедоступным

Прямо сейчас ваш частный локальный реестр доступен только на вашем компьютере по адресу http: // localhost: 4873. Мы будем использовать ngrok, чтобы поделиться им с соавторами.

Установите ngrok

Откройте новую вкладку или окно в вашем терминале и установите ngrok через npm:

npm i ngrok -g

Затем запустите эту команду, чтобы открыть порт 4873:

ngrok http 4873

Он должен создать такой URL-адрес http://e55ba6a3.ngrok.io. Откройте его в браузере, и вы увидите свой собственный реестр npm. Ваш реестр теперь доступен всем, с кем вы поделились URL-адресом.

Используйте свой общедоступный реестр npm

В Strapi перед выпуском новой версии мы всегда тестируем наш пакет в реальной производственной среде. Мы запускаем сервер Ubuntu на AWS с предустановленными Node.js, npm и git.

Запустите эту команду, чтобы использовать общедоступный реестр npm.

npm set registry http://e55ba6a3.ngrok.io

ℹ️ Не забудьте использовать свой собственный URL-адрес ngrok.

Наконец, установите свой пакет на сервер.

npm install foo-package

Выполнив эту команду, npm сначала попытается установить пакет из вашего реестра (http://e55ba6a3.ngrok.io - › http: // localhost: 4873 ). Но, если соответствующего пакета нет, он будет использовать пакет из официального реестра (https://registry.npmjs.com).

Заключение

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

Первоначально опубликовано на blog.strapi.io 24 января 2018 г.