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

Оглавление

Глоссарий

I. Новый пакет

1.1 советы по инициализации
1.2 index.js
1.3 test.js

II. Тесты

2.1 Jasmine Testing Framework
2.2 Первая спецификация

III. использование

3.1 Публикация
3.2 Использование в проекте
3.3 Использование пакета во время разработки

Глоссарий

  • Node.js® - это среда выполнения JavaScript, построенная на движке Chrome V8 JavaScript.
  • Npm - менеджер пакетов Javascript.

Прежде чем мы начнем, убедитесь, что вы установили Node.js на свой компьютер; npm включен в дистрибутив Node.js, поэтому у вас уже будет установлен npm после завершения установки Node.js. Чтобы проверить установленные версии, запустите это в терминале:

$ узел -v
v9.5.0
$ npm -v
5.6.0

I. Новый пакет

На веб-сайте npm есть отличное руководство по созданию пакетов: https://docs.npmjs.com/getting-started/creating-node-modules

1.1 советы по инициализации

Прежде чем продолжить и прочитать инструкции (обязательно посмотрите видео), следует помнить о четырех вещах:

  1. Начните с пустой папки - ее имя не важно, но npm init используется по умолчанию для имени пакета. Однако вы можете ввести другое имя в процессе npm init.
  2. Выберите номер версии, отличный от 1.0.0. ИМХО, v.1.0.0 должна быть последней версией вашего продукта, а не его началом. Я предпочитаю: 0.0.1.
  3. Синтаксис index.js немного устарел.
  4. Последние 2 шага по созданию и запуску файла test.js могут немного запутать новичка. Я объясню это в следующем разделе.

Так что вперед и создайте свой первый пакет npm. Ниже я использовал my-fist-package в качестве имени:

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

1.2 index.js

Строка 5 выше указывает точку входа в наш пакет.

Мы создадим index.js файл рядом с package.json и добавим простую функцию:

1.3 test.js

Давайте теперь посмотрим, как это работает - создайте новый файл test.js помимо предыдущего и запросите индекс. Это сделает нашу маленькую функцию доступной для использования:

NB: поскольку мы экспортируем только одну функцию, результатом require('.index') будет та функция (с именем message), которая затем выполняется внутри console.log.

II. Тесты

Очевидно, что приведенный выше файл представляет собой очень элементарный тест, если его даже можно назвать тестом.

2.1 Среда тестирования Jasmine

Напишем хорошие тесты - будем использовать Жасмин через модуль жасмин-узел. Мы добавим это в наш пакет

$ npm install jasmine-node -D

+ [email protected]
добавлено 23 пакета за 91.139 сек

Параметр -D добавит jasmine-node только в качестве зависимости разработчика, поскольку он нам нужен только во время разработки - package.json отразит это:

Нам также потребуется изменить тестовый сценарий внутри package.json, чтобы использовать средство запуска спецификации jasmine-node (см. Строку 7 ниже):

2.2 Первая спецификация

Теперь давайте создадим папку с именем spec и файлом с именемtestSpec.js внутри нее.

$ mkdir spec
$ touch spec / testSpec.js

Напишем самый первый тест на Жасмин:

Теперь мы можем запустить тест из командной строки, используя npm test:

Как видите, он не работает - и это хороший знак: сначала нужно проверить тесты, если они не пройдут.

Проблема очевидна - наша функция возвращает «работает», а тест ищет «вроде работает». Мы обновим строку в тесте, чтобы она прошла (строка 8 ниже):

III. использование

3.1 Публикация

На веб-сайте npmjs.org есть отличное руководство как создать учетную запись и опубликовать пакет. Мой предыдущий совет, связанный с версией, также уместен здесь: будьте осторожны, какую версию вы публикуете - как только v.1.0.0 будет запущена, вы не сможете вернуться к семантически предшествующей версии, например: 0.9.0.

3.2 Использование в проекте

После публикации пакета вы можете использовать его, как и любой другой пакет. В отдельной папке, созданной специально для этого, создайте файл package.json и добавьте свой пакет в качестве зависимости (убедитесь, что вы используете свое собственное имя и версию пакета):

Все, что вам нужно сделать сейчас, это запустить npm install (или ярлык npm i), и вы отправляетесь в гонки.

3.3 Использование пакета во время разработки

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

Оказывается, вы можете установить пакет, указав его локальный путь; поэтому давайте изменим строку 3 в package.json выше и укажем полный путь:

Запуск npm install теперь обновит пакет с локального пути.

Теперь наш пакет готов к использованию - создайте файл index.js помимо package.json и добавьте следующее:

Вы можете увидеть это в действии, используя:

$ node index.js
работает

И последнее замечание - таким образом вы можете использовать даже неопубликованный или частный пакет.

Это все, ребята!

Надеюсь, вам понравилась эта статья - Удачной упаковки!