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

לבצע-תמצית-סקריפט-עם-npx

זה די יפה.

אתה יכול להשתמש ב- npx להפעלת כל רשימות ומאגרים של GitHub. בואו נתמקד בביצוע תמצית GitHub כי קל יותר ליצור אחת.

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

כאן תוכלו למצוא את הקוד בו השתמשתי לדוגמא זו.

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

בדוק גרסאות חבילה שונות

npx מקל מאוד על בדיקת גרסאות שונות של חבילת Node.js או מודול. כדי לבדוק את התכונה המדהימה הזו, אנו הולכים להתקין את create-react-appהחבילה באופן מקומי ולבדוק גרסה קרובה.

זה יפרט כמה תגי dist לקראת סוף הפלט. תגי Dist מספקים כינויים למספרי גרסאות, מה שמקל על ההקלדה כל כך הרבה.

$ npm v create-react-app
צור תגובת אפליקציה dist-tags

בואו נשתמש ב- npx כדי לנסות את nextתגית dist create-react-appאשר תיצור את האפליקציה בספריית ארגז חול.

$ npx [email protected] sandbox

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

לאחר ההתקנה נוכל לנווט לאפליקציה כך:

$ cd sandbox

ואז התחל עם הפקודה הזו:

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

זה יפתח אוטומטית את אפליקציית React בחלון הדפדפן המוגדר כברירת מחדל.

עכשיו יש לנו אפליקציה שפועלת בגרסה הבאה של create-react-appהחבילה!

דף-אינדקס-תגובה-אפליקציה

סיכום

npx עוזר לנו להימנע מגרסאות, בעיות תלות והתקנת חבילות מיותרות שאנחנו רק רוצים לנסות.

הוא גם מספק דרך ברורה וקלה לביצוע חבילות, פקודות, מודולים ואפילו רשימות ומאגרים של GitHub.

אם לא השתמשת ב- npx לפני כן, עכשיו זה זמן טוב להתחיל!

זה פורסם במקור בבלוג שלי.

אתה יכול להגיע ולשאול אותי כל דבר בטוויטר ובפייסבוק.