Есть много полезных инструментов CLI, написанных на узле, но как их запускать.

Опция 1

Наиболее распространенный способ, с помощью которого эти инструменты сообщают вам о необходимости их запуска, — установить их глобально, например:

npm install --global speed-test

Затем вы можете вызвать инструмент как speed-test .

Это очень легко сделать, и это работает хорошо, но теперь этот пакет на вашем пути. Это может конфликтовать с другими командами, которые у вас есть на вашем пути, или, что еще хуже (для опытных пользователей ярлыков среди вас), заставлять вас нажимать клавишу Tab еще раз, когда вы выполняете автозаполнение.

Вариант 2

Вы можете установить пакет в локальном модуле,

npm install jest

Затем выполните команду ./node_modules/jest/bin/jest.js

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

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

Вариант 3

Добавьте команду в свой package.json для запуска команды.

// package.json
{
...
  "scripts": {
    ...
    "speed-test": "speed-test"
}

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

Вариант 4

Последний вариант, о котором я расскажу, это npx . npx включен в вашу установку npm в версиях выше 5.2. Используя npx, вы можете запустить команду без установленного пакета или уже установленного в модулях вашего узла. Полную информацию об этом пакете можно найти здесь и здесь.

В чистом пакете можно запустить

npx speed-test

Который проверит локальный node_modules или загрузит его и запустит.

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

npx jest path/to/test

Без необходимости что-либо редактировать.