NPM:
Веб-разработчики могут иметь десятки проектов на своих машинах разработки, и каждый проект имеет свой собственный набор установленных NPM зависимостей. Несколько лет назад обычные рекомендации для работы с приложениями CLI, такими как Grunt или Gulp, заключались в их установке локально в каждом проекте и в глобальном масштабе, чтобы их можно было легко запустить из командной строки.
Но установка глобально вызвала столько проблем, сколько она решила. Проекты могут зависеть от разных версий инструментов командной строки и загрязнять операционную систему множеством инструментов CLI для конкретного развития. Сегодня большинство разработчиков предпочитают устанавливать инструменты локально и оставлять это на этом.
Локальные версии инструментов позволяют разработчикам извлекать проекты из GitHub, не беспокоясь о несовместимости с глобально установленными версиями инструментов. packages.json может просто установить локальные версии, и вы хорошо поедете. Но проектные установки не без проблем: как вы запускаете правильную версию инструмента, не указав точное местоположение в проекте или не играя с псевдонимами?
Это проблема node_modules / .bin / solves. Новый инструмент, включенный в NPM 5.2, / usr / local / bin, представляет собой небольшую утилиту, которая достаточно умна, чтобы запускать нужное приложение, когда оно вызывается из проекта.
Если вы хотите запустить проект-локальную версию мокко, например, вы можете запустить npx mocha внутри проекта, и он будет делать то, что вы ожидаете.
Полезным преимуществом npx является то, что он автоматически установит пакеты npm, которые уже не установлены. Итак, как указывает разработчик инструмента Kat Marchan, вы можете запустить npx benny-hill, не имея дело с Benny Hill, загрязняющим глобальную среду.
Если вы хотите взять npx для вращения, обновите последнюю версию npm.