
npm install <שם> (או npm i): מוריד את החבילה לתיקייה node_modules ומוסיף אותה ל-dependencies. אפשר להתקין כמה חבילות בבת אחת, למשל npm i lit colors.npm uninstall <שם>: מסיר את החבילה מהתיקייה ומה-dependencies.npm i <שם> --save-dev מוסיף את החבילה ל-devDependencies. היא לא נכללת בגרסת הפרודקשן, למשל כלי עזר לפיתוח.npm install בלי שם: משחזר את כל החבילות שמופיעות ב-package.json.--save כדי שההתקנה תירשם ב-dependencies. מגרסה מסוימת זה נעשה אוטומטית, אבל עדיין רואים את --save בהרבה מקורות.npm i -g <שם> מתקין חבילה ברמת המחשב ולא בפרויקט. זה מתאים לחבילות עם פקודות CLI, כלומר פקודות שמריצים מהטרמינל. הפקודה npm root -g מציגה את התיקייה הגלובלית. בווינדוס היא נמצאת תחת AppData\Roaming\npm\node_modules בתיקיית המשתמש. התיקייה מוסתרת, ולכן צריך להציג קבצים מוסתרים כדי לראות אותה.npm cache clean --force. המרצה הזהיר שזה דורש זהירות, כי הפקודה מנקה את כל המטמון.node_modules, שיכולה להיות כבדה מאוד, מוחקים את node_modules ואת package-lock.json. בפרויקט המועתק מריצים npm install, וה-NPM מוריד מחדש את כל החבילות לפי package.json.הטקסט המלא של הדקות הראשונות בהרצאה «פקודות NPM» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
קיימות מספר פקודות npm נפוצות שאנחנו הרבה פעמים עובדים איתן כשאנחנו רוצים לעבוד עם packages או להתקין packages. בואו נראה את הפקודות האלה. אז ראשית ראינו את הפקודה הראשונה של npm install ואת שם הpackage לדוגמה ליט או בקיצור npm ilit.
הדבר הזה ניגש לשרתים של npm ומוריד את הpackage ומתקין אותו מקומית אצלנו באפליקציה. איפה זה בעצם מותקן? אז יש לנו כאן תיקייה שנקראת Node Modules ובתוכה אנחנו רואים את ההתקנות השונות שעשינו.
זאת אומרת שכל הפאקג' ליט עם כל הקבצים שלו נמצא אוקיי, מעולה. בנוסף, המערכת מציינת לנו בדיפנדנסיז שאנחנו התקנו את הליט ואת המספר גרסה שלו. אם אנחנו נשחזר את הפרויקט ותכף נראה איך אנחנו משחזרים פרויקט.
אז המערכת אוטומטית תחזיר לנו את הפאקג' הזה בחזרה. יכול להיות מצב שאנחנו רוצים להתקין איזשהו פאקג', אבל אנחנו רוצים להתקין אותו רק לצרכים של פיתוח.
אנחנו לא רוצים שהפאקג' הזה יהיה בדיפנדנסי הכללי של המערכת שלנו בשביל הפרודקשן. כלומר, אם אנחנו מעלים את המערכת הזאת באמת לאוויר לאיזשהו שרת אמיתי, אנחנו לא צריכים את הפאקג' הזה שמה.
זה יכול להיות כל מיני כלים תכנותיים, זה יכול להיות כל מיני פאקג' שעוזר לנו בפיתוח, זה יכול להיות פאקג' שרק נותן לנו כל מיני נתונים לגבי האינטליסנס או לגבי קומפיילר, או דברים שאנחנו בעצם לא צריכים בפרודקשן אלא רק בדבלופמנט.
אם זה קורה, אז אנחנו רוצים להתקין את הפאקג' בצורה הבאה: npm i שם הפאקג' לדוגמה בואו ניקח שוב פעם את ה.. בואו ניקח את colors נניח שאת ה-colors אני רוצה רק בפיתוח אבל אני לא באמת צריך אותם בפרודקשן עצמו.
מה שאנחנו צריכים לעשות זה מינוס מינוס save מינוס dev enter ושימו לב איפה הפאקג' הזה עכשיו מותקן לנו. אז אם אנחנו הולכים לפאקג' אז אנחנו רואים שיש לנו עכשיו מעבר לדיפנדנסיז גם dev dependencies וכאן אנחנו רואים שהוא התקין לנו במקום ההתקנה המקורית של הדיפנדנסיז.
זה אומר שאם אנחנו עכשיו נבצע איזושהי פקודת build או איזושהי פקודה שלוקחת את כל המערכת והופכת אותה למערכת עבור שרת אמיתי הוא לא יצרף את הפאקג' הזה למערכת שאמורה להיות בפרודקשן.
איך אנחנו מסירים פאקג'? npm uninstall שם ה-package ליט, וזה אמור להסיר אותו. הנה אנחנו רואים שהוא הסיר לנו את זה מה-dependencies.
בואו נבצע את אותו הדבר עבור colors ועל הפעם נסיר אותו מה-save dev, ואז הוא אמור להסיר אותו מהאזור של ה-development.
בואו, אפשר להיפטר משני אלה עכשיו, והמערכת תיצור לנו אותם. אם אין לנו אותם, אז אנחנו בעצם נפטרים מהם. ברגע שאני אתקין איזה משהו, אז עוד פעם אנחנו נראה אותם.
דבר נוסף שאנחנו יכולים לעשות, npm-i, זה להתקין כמה בבת אחת. לדוגמה, גם את ליט וגם את colors, אין לי פה את המינוס מינוס save dev, ולכן הם יותקנו אוטומטית בדפנדנסיז.
אין לנו הגבלה, אנחנו יכולים כמה שאנחנו רוצים. שימו לב, added two packages. דבר נוסף שחשוב לציין, פעם בגרסאות ראשונות של NPM כשאנחנו ביצענו התקנה היינו צריכים לרשום מינוס מינוס סייב.
זה בעצם היה דואג שההתקנה אכן נכתבת בתוך הדיפנדנסיז. מגרסה מסוימת הוא עושה את זה אוטומטית, אז לא צריך לרשום מינוס מינוס סייב, אבל לפעמים רואים את זה עדיין באינטרנט, בסטאק אוף אוף לואו, בכל מיני מקומות, שאתם צריכים לבצע סייב, אבל הוא כמובן מבצע את זה מאיזושהי גרסה, גם בלי זה.
מה עוד שווה לדעת? יש לנו התקנה נוספת, בואו ניקח npm install. נניח שאני מתקין עכשיו איזשהו package, בואו ניקח את colors, ואני רוצה להתקין אותו, אבל לא בתיקייה הנוכחית, אלא אני רוצה להתקין אותו באיזושהי תיקייה מרכזית במחשב.
אז בכדי לבצע את זה, אני פשוט עושה מינוס g. פינוס G מתקין אותו בתיקייה המרכזית במחשב ולא כותב אותו פה בדיפנדנסיז, אבל זה לא מיועד בשביל פאקג'ים רגילים לצורך שימוש על ידי Require.
זה מיועד לפאקג'ים שיש בהם פקודות CLI. מה זה CLI? CLI זה Command Line Interface, זה פקודות שהם חלק מהקומנדליין.