אם השתמשת פעם ב- 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%/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

זה די יפה.
אתה יכול להשתמש ב- npx להפעלת כל רשימות ומאגרים של GitHub. בואו נתמקד בביצוע תמצית GitHub כי קל יותר ליצור אחת.
התסריט הבסיסי ביותר מורכב מקובץ JS הראשי ו- package.json
. לאחר שהגדרת את הקבצים, כל שעליך לעשות הוא להפעיל את ה- npx עם הקישור לתמצית זו כפי שמוצג בתמונה לעיל.
כאן תוכלו למצוא את הקוד בו השתמשתי לדוגמא זו.
הקפד לקרוא בעיון כל סקריפט לפני שתבצע אותו כדי להימנע מבעיות חמורות שעלולות להופיע בגלל קוד זדוני.
בדוק גרסאות חבילה שונות
npx מקל מאוד על בדיקת גרסאות שונות של חבילת Node.js או מודול. כדי לבדוק את התכונה המדהימה הזו, אנו הולכים להתקין את create-react-app
החבילה באופן מקומי ולבדוק גרסה קרובה.
זה יפרט כמה תגי dist לקראת סוף הפלט. תגי Dist מספקים כינויים למספרי גרסאות, מה שמקל על ההקלדה כל כך הרבה.
$ npm v create-react-app

בואו נשתמש ב- npx כדי לנסות את next
תגית dist create-react-app
אשר תיצור את האפליקציה בספריית ארגז חול.
$ npx [email protected] sandbox
npx יתקין באופן זמני את הגרסה הבאה של create-react-app
ולאחר מכן היא תבצע לפיגום האפליקציה והתקנת התלות שלה.
לאחר ההתקנה נוכל לנווט לאפליקציה כך:
$ cd sandbox
ואז התחל עם הפקודה הזו:
$ npm start

זה יפתח אוטומטית את אפליקציית React בחלון הדפדפן המוגדר כברירת מחדל.
עכשיו יש לנו אפליקציה שפועלת בגרסה הבאה של create-react-app
החבילה!

סיכום
npx עוזר לנו להימנע מגרסאות, בעיות תלות והתקנת חבילות מיותרות שאנחנו רק רוצים לנסות.
הוא גם מספק דרך ברורה וקלה לביצוע חבילות, פקודות, מודולים ואפילו רשימות ומאגרים של GitHub.
אם לא השתמשת ב- npx לפני כן, עכשיו זה זמן טוב להתחיל!
זה פורסם במקור בבלוג שלי.
אתה יכול להגיע ולשאול אותי כל דבר בטוויטר ובפייסבוק.