npm срещу npx - Каква е разликата?

Ако някога сте използвали Node.js, тогава със сигурност сте използвали npm .

npm (node ​​package manager) е мениджърът на зависимости / пакети, който излизате от кутията, когато инсталирате Node.js. Той предоставя начин за разработчиците да инсталират пакети както глобално, така и локално.

Понякога може да искате да разгледате конкретен пакет и да изпробвате някои команди. Но не можете да направите това, без да инсталирате зависимостите в локалната си node_modulesпапка.

Там идва npx .

В тази статия ще разгледаме разликите между npm и npx и ще научим как да извлечем най-доброто от двете.

Първо, нека разберем какво всъщност е npm и какво можем да направим с него.

npm мениджъра на пакети

npm е няколко неща. На първо място, това е онлайн хранилище за публикуване на проекти с отворен код Node.js.

Второ, това е CLI инструмент, който помага да инсталирате тези пакети и да управлявате техните версии и зависимости. Има стотици хиляди библиотеки и приложения Node.js на npm и много други се добавят всеки ден.

npm сам по себе си не изпълнява никакви пакети. Ако искате да стартирате пакет с помощта на npm, трябва да посочите този пакет във вашия package.jsonфайл.

Когато изпълнимите файлове се инсталират чрез npm пакети, npm създава връзки към тях:

  • локалните инсталации имат връзки, създадени в ./node_modules/.bin/директорията
  • глобалните инсталации имат връзки, създадени от глобалната bin/директория (например: /usr/local/binна Linux или на %AppData%/npmна Windows)

За да изпълните пакет с npm, трябва или да въведете локалния път, по следния начин:

$ ./node_modules/.bin/your-package

или можете да стартирате локално инсталиран пакет, като го добавите във вашия package.jsonфайл в раздела за скриптове, като този:

{ "name": "your-application", "version": "1.0.0", "scripts": { "your-package": "your-package" } }

След това можете да стартирате скрипта, като използвате npm run:

npm run your-package

Можете да видите, че стартирането на пакет с обикновен npm изисква доста церемония.

За щастие тук е полезен npx .

npx бегач на пакети

Тъй като npm версия 5.2.0 npx е предварително в комплект с npm. Така че това е почти стандарт в днешно време.

npx е и CLI инструмент, чиято цел е да улесни инсталирането и управлението на зависимостите, хоствани в npm регистъра.

Сега е много лесно да стартирате всякакъв вид базиран на Node.js изпълним файл, който обикновено инсталирате чрез npm.

Можете да изпълните следната команда, за да видите дали тя вече е инсталирана за текущата ви версия на npm:

$ which npx

Ако не е, можете да го инсталирате по следния начин:

$ npm install -g npx

След като се уверите, че сте го инсталирали, нека видим няколко от случаите на употреба, които правят npx изключително полезен.

Стартирайте локално инсталиран пакет лесно

Ако искате да изпълните локално инсталиран пакет, всичко, което трябва да направите, е да напишете:

$ npx your-package

npx ще провери дали съществува или съществува в $PATHлокалните двоични файлове на проекта и ако е така, ще го изпълни.

Изпълнете пакети, които не са предварително инсталирани

Друго голямо предимство е възможността за изпълнение на пакет, който не е бил инсталиран преди това.

Понякога просто искате да използвате някои инструменти на CLI, но не искате да ги инсталирате глобално, само за да ги тествате. Това означава, че можете да спестите малко дисково пространство и просто да ги стартирате само когато имате нужда от тях. Това също означава, че вашите глобални променливи ще бъдат по-малко замърсени.

Стартирайте код директно от GitHub

execute-gist-script-with-npx

Този е доста рад.

Можете да използвате npx, за да стартирате всякакви GitHub списъци и хранилища. Нека се съсредоточим върху изпълнението на GitHub същност, защото е по-лесно да го създадете.

Най-основният скрипт се състои от основния JS файл и a package.json. След като настроите файловете, всичко, което трябва да направите, е да стартирате npx с връзката към тази същност, както е показано на изображението по-горе.

Тук можете да намерите кода, който използвах за този пример.

Уверете се, че сте прочели внимателно всеки скрипт, преди да го изпълните, за да избегнете сериозни проблеми, които могат да възникнат поради злонамерен код.

Тествайте различни версии на пакета

npx прави изключително лесно тестването на различни версии на пакет или модул Node.js. За да тестваме тази страхотна функция, ще инсталираме локално create-react-appпакета и ще тестваме предстояща версия.

Това ще изброи някои dist тагове в края на изхода. Dist таговете предоставят псевдоними за номерата на версиите, което го прави много по-лесен за въвеждане.

$ npm v create-react-app
create-response-app-dist-тагове

Нека използваме npx, за да изпробваме nextdist маркера, create-react-appкойто ще създаде приложението в директорията на пясъчника.

$ npx [email protected] sandbox

npx временно ще инсталира следващата версия на create-react-appи след това ще изпълни скелета на приложението и ще инсталира зависимостите му.

Веднъж инсталирани, можем да отидем до приложението по следния начин:

$ cd sandbox

и след това го стартирайте с тази команда:

$ npm start
create-response-app-npx-next-version

Той автоматично ще отвори приложението React в прозореца на браузъра ви по подразбиране.

Сега имаме приложение, което работи на следващата версия на create-react-appпакета!

index-page-response-app

Заключение

npx ни помага да избегнем версии, проблеми със зависимостта и да инсталираме ненужни пакети, които просто искаме да изпробваме.

Той също така предоставя ясен и лесен начин за изпълнение на пакети, команди, модули и дори GitHub списъци и хранилища.

Ако не сте използвали npx преди, сега е подходящ момент да започнете!

Това първоначално беше публикувано в моя блог.

Можете да се свържете и да ме попитате каквото и да е в Twitter и Facebook.