NPM
- Управляет пакетами , но не облегчает жизнь выполнение any.
NPX
- инструмент для выполнения пакетов узлов.
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
Выше fail .Только глобально установленные пакеты могут быть выполнены путем ввода их имени only .
Чтобы исправить это и запустить его, необходимо ввести локальный путь:
$ ./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
Еще одно Major преимущество npx
это возможность выполнить пакет, который ранее не был установлен:
$ npx create-react-app my-app
В приведенном выше примере будет сгенерирован react
шаблон приложения в пределах пути, по которому была запущена команда, игарантирует, что вы всегда используете последнюю версию генератора или инструмента сборки без необходимости обновления каждый раз, когда вы собираетесь его использовать.
Вопросы, связанные с данной:
- Как использовать пакет, установленный локально в node_modules?
- NPM: как найти папку ./node_modules/.bin?
- Как сделатьвы запускаете файл js с помощью скриптов npm?