Автор оригинала: Abhilash Kakumanu.
Вступление
NPM обозначает Узел Пакет Manager и относится к файлову онлайн-проекта или Интерфейс командной строки (CLI) Инструмент, используемый для взаимодействия с онлайн-хранилищем.
В настоящее время NPM является крупнейшим в мире программным реестром с более чем 1,4 м + пакетами кода. Например, если вы хотите использовать Node.js, чтобы отправить электронные письма – вы можете сделать быстрый поиск на их репозиторий и найти модуль, похожий на Odemailer , что может сэкономить вам много времени.
Возможно, вы захотите поделиться инструментом, который вы создали с сообществом, что оптимизирует некоторую задачу BoaterPlate. В этой статье мы посмотрим, как опубликовать модуль Node.js в NPM.
Начало работы с NPM
Чтобы опубликовать модуль в NPM, нам нужно иметь учетную запись NPM. Если у вас нет одного, вы можете создать это здесь Отказ
Когда вы устанавливаете Node.js, NPM
Инструмент также установлен автоматически.
Чтобы проверить, стоит ли NPM
Был установлен правильно, вы можете проверить, какую установленную версию выполняется:
$ npm -v
После установления, что мы действительно получили NPM
Установлен, мы можем войти в систему:
$ npm login
Инструмент подскажет нам наш идентификатор, электронную почту и пароль, созданный при регистрации.
Примечание: Вам не нужно иметь учетную запись, чтобы использовать NPM, но публиковать модуль, вам понадобится один, так как он привязан к вам как автор.
Создание пакета
Давайте создадим каталог для нашего проекта и переехать в него:
$ mkdir publish-to-npm $ cd publish-to-npm
Далее мы инициализируем проект:
$ npm init
Затем команда будет предлагать вам несколько вопросов, которые, когда заполнены, создайте Package.json
файл:
{ "name": "publish-to-npm", "version": "1.0.0", "description": "\"Sample module for publishing\"", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "[email protected]", "license": "ISC" }
Основная точка входа, по умолчанию, это index.js
Поэтому мы захочем создать этот файл и добавить что-то к нему.
Если вы использовали -Я
Флаг рядом с init
Команда, это было бы установлено по умолчанию.
Добавление зависимостей
Давайте добавим какой-код для нашего index.js
Файл и добавьте зависимость, например, другой модуль NPM для его использования.
Во-первых, мы установим зависимость:
$ npm install node-fetch --save
Затем мы импортируем его на наш index.js
Файл и добавить какую-нибудь логику:
const fetch = require('node-fetch'); fetch('https://google.com') .then(res => res.text()) .then(text => console.log(text))
Чтобы убедиться, что это работает, мы можем запустить:
$ node index.js
И вывод:
При проверке Package.json
файл сейчас, мы видим Узел-выбор
В наших зависимостях:
{ "name": "publish-to-npm", "version": "1.0.0", "description": "\"Sample module for publishing\"", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "[email protected]", "license": "ISC" "dependencies": { "node-fetch": "2.6.1" } }
Примечание: --save
Флаг рассказывает NPM
Чтобы обновить проект с модулем в качестве зависимости. Это было поднято в более новых версиях, и модуль будет добавлен в список зависимостей даже без --save
Флаг, хотя для более старых версий вам придется его использовать.
Публикация на НПМ
Теперь мы можем опубликовать модуль на NPM через Опубликовать
команда:
$ npm publish
Если вы получите ошибку, это наиболее вероятно из-за столкновения имен. I.e., пакет с тем же именем уже существует на NPM. Мы должны изменить имя нашего проекта на что-то уникальное.
Вы можете искать существующие имена пакетов через панель поиска на Главная страница Отказ
После того, как вы придумаете уникальное имя, вы должны изменить имя пакета в наших Package.json
файл. Ради согласованности, также рекомендуется обновлять имя папки для соответствия имени пакета.
Если вы не можете придумать уникальное имя, вы должны проверить Навесные пакеты Отказ Это, по существу, дает вам ваше собственное пространство имен на NPM, чтобы вы могли назвать свои пакеты, все, что вы хотите.
Обычно рекомендуется, если вы планируете создать модуль общественности, вы все равно не используете то же имя, что и другой пакет, чтобы избежать ненужной путаницы. Тем не менее, это очень практично для личного пользования.
Это одна из тех настроек, которые мы избегали меняться, используя -Я
флаг. Если вы хотите сделать Scoped модуль, вам нужно будет инициализировать ваш проект с:
$ npm init [email protected]
Заключение
В этой статье мы записали простое приложение и опубликовали его на NPM в качестве публичного модуля для других разработчиков для использования по их удобству.
Вы можете столкнуться с ситуацией в будущем, где вы не найдете модуль легко доступен для решения вашей конкретной проблемы. Вы можете написать решение самостоятельно и загрузить его на NPM, и, возможно, помочь другим разработчикам с той же проблемой.