Рубрики
Без рубрики

Публикация модуля Node.js до NPM

В этой статье мы напишем простой модуль узла и публикуете его в NPM для других разработчиков для использования.

Автор оригинала: 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, и, возможно, помочь другим разработчикам с той же проблемой.