היום למדתי: התקנת חבילות אופליין עם Node.JS
כשהמקום בדיסק הקשיח שלי מתחיל להיגמר אני עובר עם זכוכית מגדלת על כל הקבצים והתיקיות ומחפש מה אפשר למחוק, כי בתחושה שלי דיסק קשיח של חצי טרה צריך להספיק לפחות לכל החיים. בכל מקרה בתוך החיפוש מצאתי ספריה קטנה בתיקיית הבית שנקראת ~/.npm
שתופסת לי היום קצת מעל ג'יגה.
מה שיותר מפתיע היה תוכן התיקיה: היא מכילה את כל החבילות שאי פעם התקנתי ובכל הגירסאות שלהן. זה כאילו מישהו לקח את כל תיקיות ה node_modules
של העולם והדביק את הכל יחד לתוך תיקיה אחת. אז הלכתי לתיעוד ומסתבר שזה בדיוק מה ש npm עושה כל פעם שאנחנו מתקינים חבילה. עוד קצת חיטוט בתיעוד ומסתבר שאפשר להשתמש ב cache הזה כדי להפוך את ההתקנות שלכם להרבה יותר מהירות. העברת הדגל --offline
ל npm install
גורמת ל npm להתקין את הספריה מהמטמון המקומי בלי לבקר באינטרנט כלל.
הנה השוואת זמנים קטנה בשביל לעשות גם לכם חשק:
$ time npm install --save express
real 0m3.625s
$ time npm install --offline --save express
real 0m1.646s
עכשיו רק נשאר למצוא איך להגביל את גודל ספריית ~/.npm
כדי שלא תתפוס לי את כל הדיסק.