Разница между npx и npm? - PullRequest
0 голосов
/ 30 мая 2018

Я только начал 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?

Ответы [ 7 ]

0 голосов
/ 12 мая 2019

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

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

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

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

np M -Менеджер

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

0 голосов
/ 23 мая 2019

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

npm install -g create-Reaction-app

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

create-реакции-app my-app

0 голосов
/ 17 декабря 2018

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:

0 голосов
/ 10 декабря 2018

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

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

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

0 голосов
/ 25 августа 2018

Представляем npx: менеджер пакетов npm

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

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

Выше 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 шаблон приложения в пределах пути, по которому была запущена команда, игарантирует, что вы всегда используете последнюю версию генератора или инструмента сборки без необходимости обновления каждый раз, когда вы собираетесь его использовать.


Вопросы, связанные с данной:

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

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.

0 голосов
/ 06 июля 2018

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-реагировать-app / index.js в системах Linux), который выполняется в среде узла.Это просто глобальный инструмент, который делает некоторые проверки.Фактическая настройка выполняется по реагирующим скриптам, последняя версия которых установлена ​​в проекте.Для получения дополнительной информации см. https://github.com/facebook/create-react-app.

...