Разница между npx и npm? - программирование
Подтвердить что ты не робот

Разница между npx и npm?

Я только начал Learning React, и Facebook помогает упростить первоначальную настройку, предоставив следующий готовый проект.
Ссылка на учетную запись Facebook на Github: https://github.com/facebook/create-react-app
Если мне нужно установить каркасный проект, я должен набрать в командной строке npx create-react-app my-app.
Мне было интересно, почему в учетной записи Facebook в Github есть npx create-react-app my-app а не npm create-react-app my-app?

4b9b3361

Ответ 1

Представляем npx: бегун пакета npm

NPM - управляет пакетами, но не облегчает жизнь.
NPX - инструмент для выполнения пакетов Node.

NPX поставляется в комплекте с NPM версии 5.2+

Сам по себе NPM не просто запускает какой-либо пакет. фактически он не запускает ни одного пакета. Если вы хотите запустить пакет с использованием NPM, вы должны указать этот пакет в файле package.json.

Когда исполняемые файлы устанавливаются через пакеты NPM, NPM связывается с ними:

  1. Локальные установки имеют "ссылки", созданные в ./node_modules/.bin/.
  2. Глобальные установки имеют "ссылки", созданные из глобального каталога 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 по пути, по которому была запущена команда, и гарантирует, что вы всегда будете использовать последнюю версию генератора или инструмента сборки без необходимости обновлять каждый раз, когда вы собираетесь его использовать.


Смежные вопросы:

  1. Как использовать пакет, установленный локально в node_modules?
  2. NPM: как получить исходную папку. /node_modules/.bin?
  3. Как вы запускаете файл js, используя скрипты npm?

Ответ 2

npx - это менеджер пакетов npm (x, вероятно, обозначает eXecute). Типичное использование - загрузка и запуск пакета временно или для ознакомительных испытаний.

create-Reaction-app - это пакет npm, который, как ожидается, будет запущен только один раз в жизненном цикле проекта. Следовательно, предпочтительно использовать npx для его установки и запуска за один шаг.

Как упомянуто на странице руководства https://www.npmjs.com/package/npx, npx может запускать команды в PATH или из node_modules/.bin по умолчанию.

Примечание. С некоторыми копаниями мы можем обнаружить, что create-реакции-приложение указывает на файл Javascript (возможно, на /usr/lib/node_modules/create-react-app/index.js в системах Linux), который выполняется в среде узла, Это просто глобальный инструмент, который делает некоторые проверки. Фактическая настройка выполняется по реагирующим скриптам, последняя версия которых установлена в проекте. Обратитесь к https://github.com/facebook/create-react-app для получения дополнительной информации.

Ответ 3

NPX:

Из https://www.futurehosting.com/blog/npx-makes-life-easier-for-node-developers-plus-node-vulnerability-news/:

Веб-разработчики могут иметь десятки проектов на своих машинах для разработки, и каждый проект имеет свой собственный набор установленных npm-зависимостей. Несколько лет назад обычный совет для работы с приложениями CLI, такими как Grunt или Gulp, заключался в том, чтобы устанавливать их локально в каждом проекте, а также глобально, чтобы их можно было легко запустить из командной строки.

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

Локальные версии инструментов позволяют разработчикам извлекать проекты из GitHub, не беспокоясь о несовместимости с глобально установленными версиями инструментов. NPM может просто установить локальные версии, и все готово. Но установки, специфичные для проекта, не обходятся без проблем: как запустить правильную версию инструмента без указания его точного местоположения в проекте или использования псевдонимов?

Вот эта проблема решает NPX. Новый инструмент, включенный в NPM 5.2, npx - это небольшая утилита, которая достаточно умна, чтобы запускать правильное приложение, когда оно вызывается из проекта.

Например, если вы хотите запустить локальную для проекта версию mocha, вы можете запустить npx mocha внутри проекта, и она будет делать то, что вы ожидаете.

Полезным побочным преимуществом npx является то, что он автоматически устанавливает пакеты npm, которые еще не установлены. Итак, как отмечает создатель инструментов Кэт Марчан, вы можете запустить npx benny-hill, не сталкиваясь с тем, что Benny Hill загрязняет окружающую среду.

Если вы хотите взять npx за спин, обновитесь до последней версии npm.

Ответ 4

NPM - менеджер пакетов, вы можете устанавливать пакеты node.js, используя NPM

NPX - это инструмент для выполнения пакетов node.js.

Неважно, установили ли вы этот пакет глобально или локально. NPX временно установит его и запустит. NPM также может запускать пакеты, если вы настроите файл package.json и включите его в раздел сценариев.

Запомните это, если вы хотите быстро проверить/запустить пакет узла без локальной или глобальной установки, используйте NPX.

нп м - менеджер

NP X - Выполнить - легко запомнить

Ответ 5

npx запускает команду пакета без явной его установки.

Варианты использования:

  • Вы не хотите устанавливать пакеты ни глобально, ни локально.
  • У вас нет разрешения на его глобальную установку.
  • Просто хочу проверить некоторые команды.

Синтаксис:

npx [options] [-p|--package <package>] <command> [command-arg]...

Пакет не является обязательным:

npx   -p uglify-js         uglifyjs --output app.min.js app.js common.js
      +----------------+   +--------------------------------------------+
      package (optional)   command, followed by arguments

Например:

Start a HTTP Server      : npx http-server
Lint code                : npx eslint ./src
                         # Run uglifyjs command in the package uglify-js
Minify JS                : npx -p uglify-js uglifyjs -o app.min.js app.js common.js
Minify CSS               : npx clean-css-cli -o style.min.css css/bootstrap.css style.css
Minify HTML              : npx html-minifier index-2.html -o index.html --remove-comments --collapse-whitespace
Scan for open ports      : npx evilscan 192.168.1.10 --port=10-9999
Cast video to Chromecast : npx castnow http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerFun.mp4

Подробнее о command:

Ответ 6

Простое определение:

npm - менеджер пакетов Javascript

npx - выполнять двоичные файлы пакета npm

Ответ 7

Вот пример NPX в действии: npx cowsay hello

Если вы введете это в свой терминал bash, вы увидите результат. Преимущество этого заключается в том, что npx временно установил cowsay. Там нет загрязнения пакета, так как коровье не установлено постоянно. Это отлично подходит для одноразовых упаковок, где вы хотите избежать загрязнения упаковки.

Как упоминалось в других ответах, npx также очень полезен в тех случаях, когда (с npm) необходимо установить пакет и настроить его перед запуском. Например, вместо использования npm для установки и настройки файла json.package, а затем для вызова настроенной команды запуска просто используйте вместо него npx. Реальный пример: npx create-Reaction-app my-app

Ответ 8

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

https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b

Извините, я не мог полностью уточнить.

Ответ 9

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

Вот пост, который я написал о NPX, который объясняет различные вещи, которые вы можете сделать с ним

Ответ 10

Если вы используете npm 5.1 или более раннюю версию, вы не можете использовать npx. Вместо этого, установите create-Reaction-app глобально:

npm install -g create-реагировать-приложение

Теперь вы можете запустить:

создать-реагировать-приложение мое-приложение