Есть много полезных инструментов 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
Без необходимости что-либо редактировать.