Npx bilan tanishish: npm to'plam yuguruvchisi

[Shuningdek, siz ushbu xabarni rus tilida o'qishingiz mumkin.]

Npm ni so'nggi versiyasiga npm@5.2.0 bilan yangilaganlar odatiy npm: npx bilan bir qatorda yangi binarni o'rnatayotganini sezishlari mumkin.

npx npm registridan paketlarni ishlatish tajribasini aniqlashga yordam beradigan vositadir - npm xuddi shu tarzda registrda joylashgan qaramlikni o'rnatish va boshqarishni juda osonlashtiradi, npx CLI asboblari va boshqa boshqariladigan dasturlardan foydalanishni osonlashtiradi. ro'yxatga olish kitobi. Hozirgi vaqtda oddiy npm bilan shug'ullanish uchun bir oz marosim talab qiladigan bir qator narsalarni juda soddalashtiradi:

Npm run-skriptisiz mahalliy o'rnatilgan vositalardan foydalanish

Sigir sutini mahalliy qaramlik sifatida o'rnatish va uni

So'nggi bir necha yil mobaynida, npm ekotizim foydalanuvchilarni global miqyosda o'rnatishni talab qilish o'rniga, loyihani mahalliy boshqarish kabi vositalar sifatida o'rnatishga intilmoqda. Bu shuni anglatadiki, avval tizimga avval o'rnatilgan mocha, grunt va bower kabi vositalar endi versiyalari har bir loyiha asosida boshqarilishi mumkin. Bundan tashqari, npm-ga asoslangan loyihani ishga tushirish va ishga tushirish uchun qilishingiz kerak bo'lgan narsa bu tizimingizda npm + npm borligiga ishonch hosil qilish, git repo-ni klonlash va npm ni o'rnatish va sinovdan o'tkazish uchun qilishdir. Npm ishga tushirish skripti yo'lga mahalliy ikkitomonlama qo'shganligi sababli bu juda yaxshi ishlaydi!

Salbiy tomoni shundaki, bu sizga mahalliy ikkilikni interaktiv ravishda chaqirish uchun tez / qulay usulni bermaydi. Buning bir necha usullari bor va ularning barchasi ularni g'azablantiradi: siz ushbu vositalarni skriptlaringizga qo'shishingiz mumkin, ammo keyin siz foydalanish orqali dalillarni o'tkazishni unutmasangiz kerak -. $ (npm bin): $ PATH, yoki siz ularga ./node_modules/.bin/mocha bilan qo'lda yo'l ochishingiz mumkin. Bularning barchasi ishlaydi, ammo ularning hech biri ideal emas.

npx sizga eng yaxshi echim deb biladigan narsani taqdim etadi: $ npx mocha sizning mahalliy o'rnatishingizdan foydalanish uchun qilishingiz kerak bo'lgan hamma narsa. Agar siz qo'shimcha qadam tashlasangiz va qobiqni avtomatik tushirishni sozlasangiz (batafsilroq quyida), loyiha katalogidagi $ mocha siz uchun hiyla-nayrangni amalga oshiradi!

Bonus ballari uchun npx-da, allaqachon o'rnatilgan ikkilikni ishlatganda, ortiqcha xarajatlar bo'lmaydi - bu vosita kodini hozirgi ishlaydigan tugun jarayoniga yuklash uchun etarli darajada aqlli! Bu narsa shunchalik tez bo'ladiki, uni skript uchun eng maqbul vositaga aylantiradi.

Bir martalik buyruqlarni bajarish

Siz biron bir CLI vositasini sinab ko'rmoqchi bo'lgan vaziyatga tushib qoldingizmi, lekin uni bir marta ishga tushirish uchun global o'rnatish kerakmi? npx bu uchun juda yaxshi. Agar siz $ PATH-da bo'lmagan bo'lsa, npx -ga qo'ng'iroq qilish avtomatik ravishda npm registridan shu nomli paketni o'rnatadi va uni chaqiradi. Tugatgandan so'ng, o'rnatilgan paket sizning globalsingizda hech qanday joyda bo'lmaydi, shuning uchun uzoq muddatli kelajakda ifloslanish haqida xavotirlanmaysiz.

Ushbu xususiyat generatorlar kabi narsalar uchun juda mos keladi. Yeoman yoki "reaksiya-ilova" kabi vositalar faqat ko'k oyda bir marta chaqiriladi. Agar siz ularni qayta ishga tushirsangiz, ular allaqachon eskirgan bo'ladi, shuning uchun har safar ularni ishlatishni xohlaganingizda o'rnatishni boshlashingizga to'g'ri keladi.

Asbobni saqlovchi sifatida menga bu xususiyat juda yoqadi, chunki men uni README.md ko'rsatmalariga shunchaki o'rnatishda xalaqit berishga urinishning o'rniga $ npx my-tool-ni joylashtira olaman. Ochig'ini aytganda, "oh, bitta buyruqni nusxa ko'chiring, bu nol majburiyat" degani, vositani ishlatishni yoki ishlatmaslikni bilmagan foydalanuvchilar uchun yanada yoqimli.

Mana, siz npx-dan foydalanishga urinib ko'rishingiz mumkin bo'lgan yana bir nechta qiziqarli paketlar: tug'ilgan kuningiz bilan, baxtli tepalik, mashaqqatli, sigiray, yo, yaratish-reaksiya-ilovasi, npm-check. Hatto juda ajoyib npx repo bor! Davom eting! To'liq mahalliy lokal REST serverini ishga tushirish buyrug'i tvitga sig'maydi.

Turli xil Node.js versiyalari bilan buyruqlarni ishga tushiring

tugun -v" tugun versiyalarida bir martalik ishlarni bajarish uchun ishlatilishi mumkin." src="https://imgstore.nyc3.cdn.digitaloceanspaces.com/stonemountainclub/1574275445951.png" />

Ma'lum bo'lishicha, Aria Styuartning npm registridagi tugun deb nomlangan ajoyib to'plami bor. Bu shuni anglatadiki, siz nvm, nave yoki n kabi versiya menejeridan foydalanmasdan tugun buyruqlarini turli tugun versiyalaridan foydalanib sinab ko'rishingiz mumkin. Sizga npm@5.2.0 stokni o'rnatish kifoya qiladi!

Npx uchun -p optsiyasi sizga o'rnatiladigan va ishlaydigan $ PATH-ga qo'shiladigan paketlarni belgilashga imkon beradi, shuning uchun siz quyidagi npm to'plamingizni o'rnatish va sinash uchun $ npx -p tugun @ 6 npm kabi narsalarni qilishingiz mumkin. agar siz global miqyosda @ 6 tugunini ishlayotgan bo'lsangiz. Men buni doim o'zim ishlataman - va yaqinda mening 8 kutubxonam @ 8 tugunida sinab ko'rganligi sababli uni bitta loyiha bilan juda ko'p ishlatishga to'g'ri keldi. Bu haqiqiy hayotni tejash vositasi edi va men ushbu versiyani ishlatish uchun versiya menejerlariga qaraganda osonroq topdim, men ularni har doim qandaydir tarzda buzish yoki noto'g'ri sozlash usulini topaman.

Npm ishga tushirish skriptlarini interaktiv ravishda ishlab chiqish

`$ npx -p coway -p lolcatjs -c 'echo

Hozirgi kunda ko'plab npm foydalanuvchilari chindan ham ajoyib run-skript xususiyatidan foydalanishadi. Ular nafaqat sizning PATH-laringizni mahalliy ikkiliklarga kirish imkoniga ega bo'lishlarini tartibga solibgina qolmay, balki ushbu skriptlarga kirishingiz mumkin bo'lgan atrof-muhit o'zgaruvchilarini ham qo'shadilar! $ Npm run env | bilan ushbu qo'shimcha parametrlarning nima ekanligini ko'rishingiz mumkin grep npm_.

Bu ishlaydigan skriptlarni ishlab chiqish va sinashni qiyinlashtirishi mumkin - va $ (npm bin / bin-bin) kabi hiyla-nayranglarga qaramay, siz interfaol ishlayotganda ham o'sha sehrli nashrlarga kira olmaysiz.

Ammo kuting! npx-da yana bitta yengi bor: siz -c opsiyasidan foydalansangiz, mag'lubiyat argumenti ichida yozilgan skript oddiy ishlaydigan skript kabi bir xil env parametrlarga to'liq kirish huquqiga ega bo'ladi! Siz hatto bitta npx taklif bilan quvurlardan va bir nechta buyruqlardan foydalanishingiz mumkin!

Do'stlarga va yaqinlaringizga gist-asoslangan skriptlarni ulashing!

Git-repit-larni o'rnatish, yangi vositalarni chiqarish va boshqalar o'rniga turli xil yordamchi skriptlarni almashish uchun gist.github.com-dan foydalanish odatiy holga aylandi.

Npx yordamida siz yana bir qadam qo'yishingiz mumkin: npx npm o'zi bajaradigan har qanday spetsifikatorni qabul qilganligi sababli siz bitta buyruq bilan odamlar to'g'ridan-to'g'ri chaqira oladigan gist yaratishingiz mumkin!

Buni https://gist.github.com/zkat/4bc19503fe9e9309e2bfaa2c58074d32 bilan sinab ko'ring!

Izoh: U erda xavfsiz qoling! Har doim .sh skriptlarini ishlatayotgandek, ularni bajarayotganda, gistlar orqali o'qishga ishonch hosil qiling.

Bonus davri: qobiqni avtomatik tushirish

Npx-ni avtomatik zaxiralashni .zshrc-ga o'rnatish, siz

Félix Saparelli qo'shgan ushbu ajoyib xususiyat shuni anglatadiki, ushbu ko'p holatlarda siz npx-ni to'g'ridan-to'g'ri qo'ng'iroq qilishingiz shart emas! Doimiy npx-dan foydalanishning asosiy farqi shundaki, agar siz pkg @ versiya sintaksisidan foydalansangiz, zahira tizim yangi paketlarni o'rnatmaydi: potentsial xavfli yozuvlarni ishlatishdan saqlaydigan xavfsizlik tarmog'i.

Avtomatik tushirishni o'rnatish juda oson: joriy qobig'ingizda foydalanish uchun buyruq uchun npx hujjatlariga qarang va .bashrc / .zshrc / .fishrc ga qo'shing, so'ngra qobig'ingizni qayta ishga tushiring (yoki yangilash uchun manba yoki boshqa mexanizmlardan foydalaning) chig'anoq).

Endi siz har xil versiyalarni sinab ko'rish uchun $ standart @ 8 - versiyani o'zgartirish kabi narsalarni qilishingiz mumkin va agar siz npm loyihasida bo'lsangiz, $ mocha avtomatik ravishda mahalliy o'rnatilgan mocha versiyasiga qaytadi, agar bunday bo'lmasa. allaqachon global darajada o'rnatilgan.

Jonli qiling!

Siz hozir npx-ni npm@5.2.0 yoki undan keyingi versiyasini o'rnatish orqali olishingiz mumkin - yoki agar siz npm-dan foydalanishni xohlamasangiz, npx-ning mustaqil versiyasini o'rnatishingiz mumkin! Bu boshqa paket menejerlari bilan to'liq mos keladi, chunki npm-dan foydalanish faqat ichki operatsiyalar uchun qilinadi. Oh, va bu dunyoning turli burchaklaridan kelib chiqadigan bir nechta erta asrab oluvchilarning hissasi tufayli - yordam tizimi va barcha tizim xabarlari tarjima qilingan va tizim tiliga asoslangan holda avtomatik ravishda mavjud bo'lgan 10 ta tilda mavjud! Bundan tashqari, npx bilan juda yaxshi ishlaydigan narsalar misollari bilan ajoyib npx-repo mavjud!

Sevimli xususiyatingiz bormi? Siz allaqachon foydalanganmisiz? Agar men bu erda ro'yxatga kiritilmaganimni ko'rsatish uchun yoqimli narsa bo'lsa, uni sharhlarda baham ko'ring! Boshqa odamlar nimani kutayotganini eshitishni juda istardim!

p.s. odamlar buni so'rashda davom etadilar, shuning uchun men bu erda shunchaki ochib bermoqchiman: ushbu giflarda men Hy-my-zsh kosmik kemasi mavzusini monokay mavzusi va FiraCode shriftini ishlatmoqdaman.