npm проти npx - в чому різниця?

Якщо ви коли-небудь використовували Node.js, то ви напевно використовували npm .

npm (менеджер пакунків вузлів) - це менеджер залежностей / пакунків, який ви отримуєте з коробки при встановленні 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%/npmWindows)

Щоб виконати пакет з 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, щоб спробувати nextтег dist, 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.