В этом руководстве мы создадим модуль многократного использования и опубликуем его как пакет Node.js.

Что такое npm?

n p m (Node package manager) - стандартный пакетный менеджер экосистемы Node.js.

npm - самый популярный менеджер пакетов для JavaScript. Это самый обширный онлайн-репозиторий пакетов, содержащий более миллиона пакетов. Кроме того, это инструмент интерфейса командной строки, используемый разработчиками для управления своими проектами на Node.js.

Разработчики могут легко делиться и обновлять программное обеспечение. Когда разработчики находят решения небольших, но серьезных проблем, они отправляют свое программное обеспечение в центральный реестр npm. Здесь любой может скачать код, а также получать будущие обновления по «модулю» или «пакету». Некоторые пакеты широко используются.

Как работает npm?

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

Установите package.json зависимости

$ npm install or npm i

npm, install загружает пакет и его зависимости. npm install можно запускать с аргументами или без них.

если вы запускаете без аргументов, npm install загружает зависимости, определенные в файле package.json, и генерирует папку node_modules с установленными модулями.

npm, install также создает файл package-lock.json. Этот файл описывает точное дерево зависимостей, которое было установлено. Это упрощает использование одного и того же дерева при последующих установках.

если вы запускаете с аргументами, npm install загружает определенные модули в папку node_modules. и добавьте зависимость в файл package.json и package-lock.json.

$ npm i <packag>

Варианты установки пакетов.

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

1) npm install (с - global)

$ npm install -g
or
$ npm install --global

если вы запустите с - global или -g, npm install установит пакет глобально. Это означает, что пакет установлен в двух местах. Первый находится в корневом каталоге, в котором определен package.json. Вторая - это глобальная папка node_modules в пользовательской системе.

2) npm install (с - сохранить)

npm install <package> --save

если вы запустите с - save, npm install изменяет файл package.json, чтобы включить указанный пакет в качестве зависимости. В этом случае пакет будет добавлен как зависимость к package.json. Параметр - save важен всякий раз, когда вы хотите, чтобы будущие установки включали указанный пакет.

3) npm install (с - save-dev)

npm install <package> --save-dev

Флаг - save-dev указывает, что пакет следует добавить в раздел devDependencies файла package.json, а не в раздел dependencies.

Другие несколько команд, которые могут пригодиться при работе с npm.

Список глобально установленных пакетов

npm list -g --depth=0

Удалить глобальный пакет

npm -g uninstall <package>

Обновите глобальные пакеты

npm outdated -g --depth=0

Список доступных скриптов для запуска

npm run

Обновить npm

npm install -g npm@latest

Типы пакетов npm:

Есть два типа пакетов npm.

  1. частный
  2. общественный

Частные пакеты

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

Публичные пакеты

Как пользователь или член организации npm вы можете создавать и публиковать общедоступные пакеты, которые любой может загрузить и использовать в своих собственных проектах. "узнать больше"

Создание и публикация общедоступных пакетов

Шаг 1: перейдите на https://www.npmjs.com/ и создайте новую учетную запись, если у вас еще нет учетной записи.

Шаг 2: создайте проект, если у вас еще нет проекта.

$ mkdir publish-npm-test
$ cd publish-npm-test

Шаг 3: откройте терминал и нажмите npm init команду.

$ npm init

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

Шаг 4: теперь добавьте необходимые детали в свой проект.

Имя пакета: рекомендации npm docs для имени пакета. бывший. опубликовать-npm-test

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

Репозиторий Git: добавьте ссылку на свой репозиторий git, если у вас есть.

Описание: оно должно быть кратким и понятным.

Точка входа: это файл входа в вашу библиотеку. по умолчанию index.js

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

Лицензия (ISC): Лицензия ISC - это разрешающая лицензия бесплатного программного обеспечения, опубликованная Консорциумом программного обеспечения Интернета, ныне называемым Консорциумом интернет-систем (ISC). .

Теперь ваш файл Package.json готов.

Шаг 5. Создайте файл index.js.

console.log("my first npm package");

Шаг 6. Тестирование созданного пакета npm с помощью оператора require.

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

с помощью оператора require или import.

перейдите в каталог publish-npm-test.

$ npm link

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

Теперь создайте тестовый каталог для тестирования нашего пакета.

$ mkdir test-package 
$ cd test-package 
$ npm init -y

свойство name в package.json файле нашего пакета было publish-npm-test, поэтому вам нужно потребовать, чтобы пакет использовал то же имя.

Теперь выполните следующую команду из папки test-package, чтобы использовать созданный вами пакет:

$ npm link publish-npm-test

Создайте новый файл с именем index.js и добавьте в него следующий код:

require("publish-npm-test");

Теперь запустите файл index.js.

node index.js

Вы увидите вывод:

my first npm package

Теперь, когда вы публикуете пакет npm в репозитории npm, любой может использовать его, установив его и используя инструкцию require или import.

Шаг 7: опубликуйте в репозитории npm.

Откройте терминал и из папки publish-npm-test выполните следующую команду:

$ npm whoami

если вы уже вошли в систему, вы увидите свое имя пользователя.

если вы не вошли в систему, нажмите следующую команду.

$ npm login

и введите свои учетные данные npm для входа.

Теперь, чтобы опубликовать его в репозитории npm, выполните следующую команду:

$ npm publish

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

Если вы перейдете в свой профиль на npmjs.com, вы увидите опубликованный пакет в своем профиле.

Теперь любой может установить ваш общедоступный пакет и использовать его в своем проекте с помощью следующей команды.

$ npm install publish-npm-test

Шаг 8. Теперь внесем некоторые изменения в код с помощью файла readme. а затем снова опубликуйте.

Перейдите в каталог publish-npm-test и внесите некоторые изменения в index.js файл.

console.log("my first npm package");
function sayHello(username){
  console.log(`Hello ${username} from publish-npm-test package`);
}
module.exports = sayHello;

и добавьте файл readMe.

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

readMe.md

# This is Sample Test Package.

А теперь давайте попробуем опубликовать его снова, используя команду npm publish.

$ npm publish

Это выдаст ошибку. Это потому, что вы снова публикуете пакет с той же версией.

Если вы проверите наш package.json файл, вы увидите, что в нем указана версия 1.0.0. Вам нужно увеличивать ее каждый раз при публикации нового изменения. Итак, к чему вы должны прибавить? Для этого вам необходимо понять концепцию семантического управления версиями.

Поэтому вам придется изменить версию внутри package.json файла с 1.0.0 на 1.0.1 и снова запустить команду npm publish.

Семантическое управление версиями в npm

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

Чтобы помочь разработчикам, которые полагаются на ваш код, мы рекомендуем начинать версию вашего пакета с 1.0.0 и увеличивать его следующим образом:

Вы можете указать, какие типы обновлений может принимать ваш пакет, в зависимости от package.json файла вашего пакета.

Концепция семантического управления версиями проста: все версии имеют 3 цифры: x.y.z.

  • первая цифра - это основная версия.
  • вторая цифра - второстепенная версия.
  • третья цифра - это версия патча.

Когда вы делаете новую версию, вы не просто увеличиваете число, как вам нравится, но у вас есть правила:

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

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

Удалить пакет из npm

Чтобы удалить опубликованный пакет npm, откройте терминал в своем каталоге и нажмите следующую команду.

npm unpublish <package>@<version>

Ваш общедоступный пакет будет удален из реестра npm.
Ссылки
1. NPM
2. dev