Шаги по созданию и публикации пакетов NPM

Опубликовано: 4 Августа, 2021

В этой статье мы узнаем, как разработать и опубликовать собственный пакет npm (также называемый модулем NPM).

Пакеты NPM обладают множеством преимуществ, некоторые из них перечислены ниже:

  • Многоразовый код
  • Управление кодом (с использованием управления версиями)
  • Совместное использование кода

Жизненный цикл пакета npm происходит, как показано ниже:

Жизненный цикл модуля

1. Настройте проект. Прежде чем что-либо делать, необходимо настроить проект.

  • Установите Node.js
  • Создайте учетную запись npm.

    npm-signup

  • Вход в учетную запись npm login

    npm-логин

2. Инициализация модуля: Чтобы инициализировать модуль, перейдите в терминал / командную строку, введите npm init и ответьте на запросы.

npm-init

  • В подсказке версии установите 0.0.0 . Он инициализирует модуль. Если вы сохраните 1.0.0, это означает, что текущая версия модуля является первым основным выпуском для потенциальных загрузчиков. Конечно, вы не хотите, чтобы первый крупный выпуск был всего лишь чистым листом и полон ошибок.
  • В главном приглашении выберите точку входа модуля. Потенциальные загрузчики будут использовать его как точку входа в модуль. Обратите внимание, что точкой входа является 'src / index.js', что в наши дни считается стандартной практикой для помещения вашего кода в каталог 'src'.
  • В тестовой командной строке просто нажмите Enter. На фотографии выше он был отредактирован из-за опечатки. Вы также можете изменить свою тестовую команду из формирующегося в конечном итоге файла package.json.
  • В приглашении репозитория git вы можете указать URL-адрес репозитория git, в котором будет размещен пакет.
  • Введите ключевые слова, автора, лицензию или нажмите «Ввод», чтобы пройти через них. Позже их можно изменить в package.json.
  • Включите в проект файл README.md, чтобы его увидели потенциальные загрузчики. Он появится на домашней странице вашего модуля. Обратите внимание, что файл должен иметь уценку.
    README.md следует добавить в модуль npm, чтобы потенциальные пользователи могли предоставлять им информацию, такую как описание модуля, как использовать пакет, как внести свой вклад в пакет и т. Д.

В конечном итоге желательно, чтобы каталог нашего проекта выглядел примерно так:

структура директорий проекта

3. Сборка модуля: Эта фаза - фаза кодирования. Если у вас есть опыт использования модулей NPM, вы должны знать, что модули NPM предоставляют методы, которые затем используются в проекте. Типичный поток управления:

Рабочий-процесс-вызов-функции-этот-в-модуле-npm

Давайте сначала реализуем простую функцию, которая складывает два числа в модуле npm. Эта функция выглядит так:

Имя файла: index.js




const gfgFns = {
add : function addTwoNums( num1, num2 ) {
return (num1 + num2) ;
}
}
module.exports = gfgFns

Обратите внимание на структуру файла index.js (который является точкой входа в создаваемый нами модуль npm).

  • const gfgFns = {} Объект, который экспортируется для использования другими.
  • add: function addTwoNums () Имя функции (addTwoNums) помечено как «добавить». Это имя «add» используется для вызова этой функции для сложения двух чисел.
  • module.exports = gfgFns Затем объект gfgFns экспортируется с этим именем. Когда эту функцию нужно использовать в другом файле.

4. Публикация модуля: После завершения модуля кодирования опубликуйте пакет npm. Чтобы опубликовать пакет, нужно иметь в виду одну вещь: если ваше имя пакета уже существует в реестре npm, вы не сможете опубликовать свой пакет. Чтобы проверить, можно ли использовать имя вашего пакета, перейдите в командную строку и введите

 npm search packagename

Если имя вашего пакета можно использовать, оно должно выглядеть примерно так, как на изображении ниже.

npm-search-gfgnpmpkgupload-cmd-1

Если имя вашего модуля уже существует, перейдите в файл package.json проекта модуля npm и измените имя модуля на другое.

Теперь, после проверки доступности имени, перейдите в командную строку / терминал и выполните следующие действия:

 npm опубликовать 

npm-publish-cmd

Теперь давайте попробуем использовать этот модуль и посмотрим, работает ли он.

  • Создайте новый каталог проекта.
  • В терминале введите npm init чтобы инициализировать проект Node.
  • Теперь выполните npm install gfgnpmpkgupload чтобы загрузить только что созданный модуль npm.

    appjs-npmpkgupload-каталог-add_function

  • Теперь все настроено, давайте попробуем запустить файл node.js и посмотрим, правильно ли наш модуль загружен, опубликован, импортирован в наш новый проект и используется.

    node-appjs-add (4 + 5 = 9) -run-success-11

5. Обновление и управление версиями. Если программа разрабатывается, очевидно, что у нее есть версии. Версии являются результатом исправлений ошибок, незначительных улучшений, значительных улучшений и основных выпусков. Для управления версиями NPM предоставляет нам следующие функции.

Контроль версий и публикация кода: NPM позволяет нам обновлять наш модуль на основе семантического контроля версий. Есть три типа повышения версии, которые мы можем сделать: патч, второстепенный и основной. Например, если текущая версия модуля - 0.4.5:

# обратите внимание, как обновление младшей версии сбрасывает версию патча на 0, аналогично,
# Обновление основной версии устанавливает второстепенный и патч # на 0.
> npm version patch # обновить версию до 0.4.6
> npm version minor # обновить версию до 0.5.0
> npm version major # обновить версию до 1.0.0

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

Примечание. Если модуль повторно публикуется без повышения версии, командная строка NPM выдаст ошибку. Например, посмотрите изображение ниже.

npm publish abort из-за того, что номер версии не изменился

Здесь командная строка выдала ошибку, потому что была предпринята попытка публикации npm без повышения версии.
Очевидное замечание: вы не можете уменьшить версию. Например, версия не может измениться с 0.1.2 на 0.1.1.

Что произойдет, если у пользователя будет более старая версия модуля? Когда модуль npm повторно публикуется (обновляется), пользователям просто нужно снова запустить npm install gfgnpmpkgupload (npm install packagename), чтобы получить последнюю версию.

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

  • В проекте модуля npm установите зависимости, необходимые для вашего модуля npm.
  • Установите эти зависимости в свой проект, используя
     npm install packagename1 [packagename2]
        
  • Убедитесь, что эти зависимости теперь упоминаются в ключе dependencies в файле package.json. Обратите внимание, что зависимости и их версии, упомянутые здесь, будут перенесены в пакет npm.
  • Убедившись, что все вышеперечисленные шаги выполнены правильно, просто опубликуйте модуль, используя
     > минорная версия npm
    npm опубликовать
    

    .
    Вышеуказанная процедура должна выполняться успешно, а результат должен быть доступен для просмотра на веб-сайте реестра npm, как показано ниже:

    три-зависимости-подсказка-шутка-mathsjs

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

 npm установить gfgnpmpkgupload

Перед запуском вышеуказанной команды запустите

 npm init -y

для настройки проекта.

Сделайте свой проект, как показано ниже:

структура проекта npmpkguploadtest

Файлы данных должны содержать numFile.txt с числами, которые необходимо добавить и отобразить в консоли.

// numFile.txt - сумма = 55
1 2 3 4 5 6 7 8 9 10

Чтобы использовать этот numFile.txt, у нас будет файл gfgapp.js, который будет выполнять фактическое добавление.

npmpkguploadtest-gfgappjs

Чтобы проверить это, перейдите в командную строку и запустите

 узел gfgapp.js 

node gfgappjs просмотр командной строки успешно выполняется

Шаблон модуля NPM: Шаблоны модуля NPM также доступны для строительных лесов проекта на yeoman.io. Доступны различные комбинации технологий, и вы можете использовать тот генератор, который вам нравится. Для начала зайдите в поиск Yeoman Generator и найдите что-то вроде «шаблон модуля npm».

Отмена публикации пакета NPM: пакет NPM следует удалить в течение 72 часов с момента первоначальной публикации. Другой способ - обратиться в реестр npm. Если вы отменяете публикацию в течение 72 часов, используйте следующую команду:

 npm unpublish packageName

Отмена публикации пакетов из реестра NPM - хорошая страница, чтобы узнать об этом больше.

Пример: используйте опубликованный пакет, чтобы сложить два числа.
Имя файла: app.js




const GFGFns = require( 'gfgnpmpkgupload' );
console.log(GFGFns.add(4, 5));

Выход:

узел-приложение-js-add459-запуск-успех-1