NPM
שם עצם · מנהל חבילות
מנהל החבילות הרשמי של Node.js והרישום הגדול בעולם לתוכנות קוד פתוח — מארח מעל 2 מיליון חבילות JavaScript המאפשרות למפתחים לשתף, לעשות שימוש חוזר ולהפיץ קוד בצורה מתוקננת ומנוהלת גרסאות.
כלי שורת פקודה (CLI) המסופק עם כל התקנה של Node.js, המאפשר אוטומציה של התקנה, עדכון וניהול תלויות בפרויקט JavaScript — תוך הבטחת שחזוריות של builds באמצעות הקובץ `package-lock.json` ופתרון דטרמיניסטי של גרסאות.
מערכת אקולוגית מלאה הכוללת רישום ציבורי (npmjs.com), לקוח CLI ויכולות ניהול ארגונים — שהפכה לאבן הפינה של פיתוח אתרים מודרני על ידי אספקת תשתית ההפצה עבור React, Next.js, Express.js וכמעט כל ספריות ה-JavaScript המקצועיות.
NPM (Node Package Manager) משמש לניהול תלויות בפרויקט JavaScript באמצעות אוטומציה של התקנה, עדכון והסרה של ספריות צד שלישי. הוא מאפשר למפתחים לעשות שימוש חוזר בקוד קוד פתוח מוכח במקום לכתוב הכול מאפס, ובכך מאיץ משמעותית את מחזורי הפיתוח. NPM משמש גם להרצת סקריפטים של build, בדיקות ופריסה המוגדרים בקובץ `package.json`. זהו הכלי הבלתי נפרד מכל פרויקט אינטרנט מודרני שאנו משתמשים בו מדי יום ב-Async Code.
NPM הוא מנהל החבילות המובנה של Node.js, המורכב מרישום מקוון (npmjs.com) המכיל מעל 2 מיליון חבילות וכלי שורת פקודה. אופן הפעולה שלו פשוט: כאשר אתם מריצים `npm install`, ה-CLI קורא את קובץ `package.json` של הפרויקט, פותר את עץ התלויות, מוריד את החבילות מהרישום ומתקין אותן בתיקיית `node_modules`. הקובץ `package-lock.json` מבטיח שכל חבר צוות וכל סביבה ישתמשו בדיוק באותן גרסאות.
הפקודה `npm install -g` מתקינה חבילה באופן גלובלי על המערכת שלכם, ומנגישה אותה מכל תיקייה דרך שורת הפקודה. בניגוד להתקנה מקומית (ללא הדגל `-g`) שממקמת את החבילה בתיקיית `node_modules` של הפרויקט הנוכחי, התקנה גלובלית מיועדת לכלי CLI כמו `typescript`, `nodemon` או `create-next-app`. בפועל, אנו ממליצים לצמצם התקנות גלובליות ולהעדיף את `npx` להרצת כלים חד-פעמית ללא זיהום סביבת המערכת.
Node.js הוא סביבת הריצה של JavaScript בצד השרת, הבנויה על מנוע V8 של Chrome, המאפשרת להריץ JavaScript מחוץ לדפדפן. NPM הוא מנהל החבילות המסופק עם Node.js, האחראי על ניהול הספריות והתלויות של הפרויקטים שלכם. בקיצור: Node.js מריץ את הקוד, NPM מנהל את מודולי הקוד. השניים משלימים ובלתי נפרדים בפיתוח אינטרנט מודרני — התקנת Node.js מתקינה אוטומטית גם את NPM.
NPM משמש לריכוז ואוטומציה של ניהול כל התלויות בפרויקט JavaScript. הוא מאפשר להתקין frameworks כמו React או Next.js בפקודה אחת, לשמור על תאימות בין גרסאות של ספריות ולשתף את המודולים שלכם עם הקהילה. NPM מנהל גם את סקריפטי הפיתוח (build, test, lint, פריסה) המוגדרים ב-`package.json`, מה שהופך אותו למנצח של כל תהליך פיתוח מקצועי. הסוכנות שלנו מסתמכת על NPM כדי להבטיח builds ניתנים לשחזור ופריסות אמינות.
כן, הפקודה `npm install` (או הקיצור שלה `npm i`) מפעילה הורדה והתקנה של כל התלויות הרשומות בקובץ `package.json` של הפרויקט. היא יוצרת את תיקיית `node_modules` המכילה את החבילות ומייצרת את הקובץ `package-lock.json` לנעילת גרסאות. ניתן גם להתקין חבילה ספציפית באמצעות `npm install package-name`. זו בדרך כלל הפקודה הראשונה שמורצת לאחר שיבוט פרויקט כדי להכין את סביבת הפיתוח.
כדי להתקין NPM על Windows, הורידו את תוכנת ההתקנה של Node.js מהאתר הרשמי nodejs.org — NPM נכלל אוטומטית בכל התקנה של Node.js. הפעילו את תוכנת ההתקנה `.msi`, עקבו אחר שלבי האשף וסמנו את האפשרות להוספה ל-PATH של המערכת. לאחר ההתקנה, פתחו טרמינל (PowerShell או CMD) ובדקו באמצעות `node -v` ו-`npm -v`. למפתחים מקצועיים, אנו ממליצים להשתמש ב-NVM for Windows (Node Version Manager) כדי לעבור בקלות בין גרסאות שונות של Node.js בהתאם לפרויקטים.
NPM בשורת הפקודה (טרמינל) הוא ממשק שורת הפקודה (CLI) המאפשר אינטראקציה עם רישום NPM וניהול תלויות הפרויקטים שלכם. הפקודות העיקריות הן: `npm init` (יצירת פרויקט), `npm install` (התקנת תלויות), `npm run` (הרצת סקריפטים), `npm update` (עדכון חבילות) ו-`npm publish` (פרסום חבילה). זהו כלי שכל מפתח JavaScript משתמש בו מדי יום לניהול מחזור החיים המלא של הפרויקטים שלו.
לא, NPM ו-Node.js הם שני כלים נפרדים אך משלימים. Node.js היא סביבת הריצה המאפשרת להריץ קוד JavaScript על שרת או מחשב מקומי. NPM הוא מנהל החבילות המנהל את הספריות והמודולים הנדרשים לפרויקטים שלכם. NPM מופץ יחד עם Node.js — התקנת אחד מתקינה אוטומטית את השני — אך הם ממלאים תפקידים שונים. זה כמו ההבדל בין מנוע (Node.js) למחסן חלקי חילוף (NPM).
NPM ממלא ארבע פונקציות חיוניות בפיתוח JavaScript: הוא מתקין ומנהל תלויות של הפרויקטים שלכם, מריץ סקריפטים אוטומטיים (build, בדיקות, פריסה), מנהל ניהול גרסאות סמנטי להבטחת תאימות בין חבילות, ומספק רישום מרכזי לפרסום ושיתוף קוד פתוח. ללא NPM, כל מפתח היה צריך להוריד, להגדיר ולעדכן ידנית כל ספרייה. ב-Async Code, NPM הוא הבסיס של שרשרת הפיתוח, ה-CI/CD והפריסה של כל אפליקציות ה-Next.js שלנו.