NPM
- Управляет пакеты , но не делает жизнь легко выполнения любой.
NPX
- Инструмент для выполнения пакетов Node.
NPX
поставляется в комплекте с NPM
версией5.2+
NPM
сам по себе не просто запустить какой-либо пакет. фактически он не запускает ни одного пакета. Если вы хотите запустить пакет с помощью NPM, вы должны указать этот пакет в своем package.json
файле.
Когда исполняемые файлы устанавливаются через пакеты NPM, NPM связывается с ними:
- локальные установки имеют «ссылки», созданные в
./node_modules/.bin/
каталоге.
- Глобальные установки имеют «ссылки», созданные из глобального
bin/
каталога (например /usr/local/bin
) в Linux или в %AppData%/npm
Windows.
Документация, которую вы должны прочитать
NPM:
Можно установить пакет локально на определенный проект:
npm install some-package
Теперь предположим, что вы хотите, чтобы NodeJS выполнил этот пакет из командной строки:
$ some-package
Выше будет терпеть неудачу . Только глобально установленные пакеты могут быть выполнены путем ввода только их имени .
Чтобы это исправить и запустить, вы должны ввести локальный путь:
$ ./node_modules/.bin/some-package
Технически вы можете запустить локально установленный пакет, отредактировав ваш packages.json
файл и добавив этот пакет в scripts
раздел:
{
"name": "whatever",
"version": "1.0.0",
"scripts": {
"some-package": "some-package"
}
}
Затем запустите скрипт, используя npm run-script
(или npm run
):
npm run some-package
NPX:
npx
проверит, <command>
существует $PATH
ли он в локальных или локальных двоичных файлах проекта, и выполнит его. Итак, для приведенного выше примера, если вы хотите выполнить локально установленный пакет, some-package
все что вам нужно сделать, это набрать:
npx some-package
Еще одним важным преимуществом npx
является возможность выполнения пакета, который ранее не был установлен:
$ npx create-react-app my-app
Приведенный выше пример будет генерировать react
приложение шаблонный в пределах пути команда была бежать в, и гарантирует , что вы всегда использовать самую последнюю версию генератора или инструмент сборки без необходимости обновления каждый раз , когда вы собираетесь его использовать.
Смежные вопросы:
- Как использовать пакет, установленный локально в node_modules?
- NPM: как получить исходную папку ./node_modules/.bin?
- Как вы запускаете файл js, используя скрипты npm?
create-react-app
это генератор.npx
идет в интернет , временно загружая пакет, чтобы он мог его выполнить ( np x ). То, что вы получаете (и хотите), является выводом, который сохраняется локально, где вы выполнили команду.