Собственный глобальный модуль NPM за 5 минут

Есть два способа установить модули npm: локально или глобально.
В этой статье мы узнаем, как создать и использовать собственный глобальный модуль npm. Глобальный модуль может быть очень полезным, и, думаю, вы уже видели это, используя gulp, grunt, bower, angular-cli, jshint или некоторые другие. На мой взгляд, может быть очень полезно создать несколько клиентов, которые будут инициализировать ваше приложение по вашему желанию, например, настроить конфигурацию редактора или мокко с первыми тестовыми файлами.

Для тех, кто не знаком с основами использования глобальных модулей, я постараюсь кратко объяснить это.

  1. Доступ к глобальному модулю можно получить из любого каталога вашего компьютера с помощью командной строки.
  2. Если модуль был установлен как глобальный, тогда ваша команда в начале будет иметь имя модуля, например, если вы установили bower как глобальный модуль, вы можете запустить из любого каталога следующую команду:
bower init 

3. Чтобы установить модуль глобально, мы используем -g перед именем модуля:

npm install -g <package>

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

  1. Сначала создадим рабочий каталог и перейдем туда:
mkdir best-guitar-player
cd best-guitar-player

2. Создайте каталог ./lib и. / bin внутри корневой папки:

mkdir bin
mkdir lib

3. Теперь нам нужно инициализировать корневую папку как проект узла, и мы можем использовать package.json по умолчанию. Чтобы пропустить все вопросы npm, мы можем добавить - yes в конце нашей команды npm init:

npm init --yes

наша корневая папка выглядит так:

4. Создайте в папке ./lib файл index.js. Он будет реагировать на функциональность модуля:

cd ./lib
touch index.js

Содержание файла index.js:

let bestGuitarPlayer = 'Jimi_Hendrix'
  , log = console.log;
let printBestGuitarPlayer = function(guitarPlayer) {
  if(guitarPlayer === bestGuitarPlayer) {
    log(`Best guitar player is ${guitarPlayer}`)
  } else {
    log(`Really? I guess ${bestGuitarPlayer} is much more better than ${guitarPlayer}`)
  }
}
exports.printBestGuitarPlayer = printBestGuitarPlayer;

5. Создайте глобальный файл модуля:

cd ../bin
touch run.js

Содержание run.js:

#!/usr/bin/env node
let lib = require('../lib')
  , args = process.argv.splice(process.execArgv.length + 2)
  , guitarPlayerName = args[0];
lib.printBestGuitarPlayer(guitarPlayerName);

#!/usr/bin/env node - экземпляр строки shebang: самая первая строка в исполняемом текстовом файле на Unix-подобных платформах, которая сообщает системе, какой интерпретатор передать этот файл для выполнения через командную строку после магического префикса #! (называемого shebang).

Примечание. Windows не поддерживает строки shebang, поэтому они фактически игнорируются; в Windows только расширение имени файла данного файла определяет, какой исполняемый файл будет его интерпретировать.

5. Теперь давайте предоставим модуль для глобальной установки. Для этого нам необходимо обновить наш файл package.json следующими изменениями:

{
  "name": "oleh-global-module",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "bin": {
    "oleh-global-module": "./bin/run.js"
  },
  "preferGlobal": true,
  "directories": {
    "lib": "lib"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

Хорошо, теперь мы готовы установить наш модуль глобально.

Установка

Установить его можно двумя способами:

  1. Перейдите в папку вверх из корневого каталога и запустите:
npm install -g best-guitar-player

2. Используйте полный путь (в моем случае это будет: / Users / obaranovsky / Desktop / best-guitar-player):

npm install -g /Users/obaranovsky/Desktop/best-guitar-player

Теперь готовы его протестировать!

Тестирование

Перейдите в любой каталог и выполните следующую команду:

best-guitar-player Ritchie_Blackmore

Вот результат:

или вы можете запустить эту команду :)

best-guitar-player Jimi_Hendrix

и результат будет:

Удаление

Вы можете удалить глобальный модуль двумя способами:

  1. Используя полный путь (в моем случае это будет / Users / obaranovsky / Desktop / best-guitar-player)
npm uninstall -g /Users/obaranovsky/Desktop/best-guitar-player

2. Из каталога, содержащего папку ./best-guitar-player.

npm uninstall -g best-guitar-player

Заключение

Спасибо, ребята, что прочитали. Надеюсь, вам понравилось, и вы узнали что-то новое, связанное с JavaScript. Пожалуйста, подпишитесь и нажмите кнопку «Хлопок», если вам понравилась эта статья.