В этом руководстве мы создадим модуль многократного использования и опубликуем его как пакет 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.
- частный
- общественный
Частные пакеты
С частными пакетами 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