С помощью НП

Node Package Manager - или сокращенно npm - помогает разработчикам с 2010 года с легкостью создавать и распространять пакеты, такие как React или Svelte. На момент написания этого руководства у него было почти 1,5 миллиона пакетов, которые вы можете использовать в своем следующем проекте.

Эти пакеты можно установить в любом проекте через интерфейс командной строки с помощью команды npm i <package-name>. Вы также можете установить их глобально, добавив к команде флаг -g:

npm i -g <package-name>

Это означает, что вы можете использовать пакет вне своего проекта в любом месте на вашем компьютере. Когда пакеты используются как зависимости проекта, NPM может устанавливать несколько пакетов с помощью файла package.json, который также отслеживает версию зависимостей.

Создание вашего первого пакета NPM

Чтобы опубликовать свой собственный пакет, вам нужно сначала создать пакет. Вы можете создать новый пустой проект NPM, запустив npm init -y. Это создаст файл package.json с указанными выше свойствами.

Вы можете заполнить все поля, так как они будут видны в npm. Посмотреть разные пакеты можно на npmjs.com. Вы также хотите создать README.md файл, в котором будете предлагать посетителям документацию о том, как они могут использовать ваш пакет.

Убедитесь, что файл main существует - в данном случае index.js - так как это будет разрешено, как только кто-то попытается импортировать ваш пакет с помощью оператора import. Также не забудьте export ваш пакет в файл, чтобы его можно было импортировать.

Публикация пакетов с помощью NP

Чтобы опубликовать пакет NPM, мы собираемся использовать другой пакет под названием np. Он создан специально для публикации пакетов NPM. Это связано с тем, что в рамках публикации вы можете захотеть пройти несколько различных шагов, которые вы можете забывать делать каждый раз, например:

  • Запуск теста для проверки ваших изменений
  • Обновление вашего package.json номера версии с помощью семантического управления версиями
  • Создание соответствующего тега git для версии
  • Публикация изменений как в GitHub, так и в NPM
  • Написание журнала изменений для релиза

Чтобы начать создавать пакеты NPM, вам необходимо сначала зарегистрировать учетную запись на npmjs, если у вас ее еще нет. Перейдите на npmjs.com/signup и создайте новую учетную запись.

Убедитесь, что вы подтвердили свой адрес электронной почты после создания учетной записи, иначе вы можете получить ошибку 403 при попытке опубликовать свой пакет.

После регистрации вы можете войти в свою учетную запись в своем проекте через командную строку, запустив npm login.

После входа в систему установите np глобально, запустив npm i -g np. Затем, запустив np в каталоге вашего проекта, вы можете начать процесс публикации пакетов.

Какие предпосылки?

Однако перед тем, как начать публикацию, вам необходимо убедиться в нескольких вещах:

  • К вашему проекту должен быть прикреплен репозиторий GitHub. В противном случае шаг prerequisite check завершится ошибкой.
  • У вас также должен быть чистый рабочий каталог, поэтому убедитесь, что вы либо зафиксировали, либо спрятали свои изменения.
  • np также запустит команду npm run test. По умолчанию это приведет к отказу np из-за команды exit 1 в конце. Убедитесь, что вы удалили это.

Теперь, когда у вас все настроено, вы можете запустить np, чтобы начать публикацию.

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

Если вы получаете ошибку 403 с вопросом, вошли ли вы в систему как правильный пользователь, вы можете попробовать опубликовать пакет, который уже существует в npm. Вы можете проверить, существует ли пакет, просто перейдя на npmjs.com/package/ ‹package-name›. Если пакет существует, вам нужно переименовать поле имени в вашем package.json файле.

Если все имена, которые вы придумали, уже заняты, вы также можете указать в пакете свое имя пользователя и назвать пакет @user/package-name.

Если вы по-прежнему получаете ошибку 403 из-за двухфакторной аутентификации, вы можете отключить ее через интерфейс командной строки, запустив np с флагом --no-2fa.

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

Как тестировать пакеты локально

Теперь, когда вы публикуете совершенно новые пакеты или крупные обновления, вы также можете протестировать свои изменения локально перед развертыванием новой версии. Для этого вы можете использовать команду npm link. Это используется для создания символических ссылок на пакеты. Просто запустите npm link в папке вашего пакета, а затем перейдите в другой проект, где вы хотите опробовать свой пакет. Затем вы можете запустить npm link <package-name>, чтобы связать его со своим проектом.

Любые изменения, внесенные вами в package-folder, также будут отражены, пока вы используете этот пакет в project-folder.

Как развернуть только файлы раздачи

Если вы попытаетесь вытащить свой пакет npm с помощью npm i <package-name>, вы можете заметить, что весь ваш проект распространяется, и это может быть не то, что вам нужно. Скорее, вы хотите, чтобы были развернуты только файлы распространения, чтобы другие могли загрузить вашу транспилированную и минифицированную версию вашего пакета.

Для этого вы можете указать файлы, которые вы хотите скопировать, в ваш package.json файл, используя массив files. Например, чтобы скопировать файлы только из вашей dist папки, вы должны сделать:

Обратите внимание, что указанные здесь файлы не могут быть исключены из вашего .gitignore или .npmignore файла. Независимо от того, что вы укажете в массиве files, всегда будут включены некоторые файлы, например файлы package.json или README / LICENSE. Аналогичным образом, некоторые файлы всегда будут игнорироваться, например .git или ваш node_modules.

Резюме

И теперь у вас должен быть новый пакет NPM, готовый к использованию всеми. Вы можете просмотреть свой пакет на npmjs под своим профилем, а также непосредственно посетив npmjs.com/package/<your-package-name>.

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

У вас есть опыт публикации пакетов NPM? Поделитесь с нами своими мыслями в комментариях ниже! Спасибо, что нашли время прочитать эту статью, удачного развертывания!