היום למדתי: npm isntall

26/08/2023

שגיאת כתיב מקרית בהתקנת חבילות הובילה אותי לקובץ cmd-list.js במאגר npm/cli, ומשם לקטע הבא מתוך אוביקט aliases:

in: 'install',
ins: 'install',
inst: 'install',
insta: 'install',
instal: 'install',
isnt: 'install',
isnta: 'install',
isntal: 'install',
isntall: 'install',

מה קורה כאן? אז הכי אחורה שהצלחתי להגיע עם זה היה ה PR הזה שהוסיף את ה alias בשביל לא להרגיז את אלכס סקסטון. אותו אלכס אגב פירסם באיזה גיסט מאותה תקופה את הלוג הבא מעבודה עם npm עם הכותרת How Dare You:

$ npm isntall
npm ERR! Darwin 14.0.0
npm ERR! argv "node" "/Users/alexsexton/.nave/installed/0.10.33/bin/npm" "isntall"
npm ERR! node v0.10.33
npm ERR! npm  v2.1.7
npm ERR! code MODULE_NOT_FOUND

npm ERR! Cannot find module '/Users/alexsexton/.nave/installed/0.10.33/lib/node_modules/npm/lib/isntall.js'
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <http://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/alexsexton/stripe/dashboard-ui/npm-debug.log

לימים נוספו עוד alias-ים נוספים ל install ולפקודות רבות נוספות, כשההסבר הרשמי לכולם (מתוך הדיון כאן) הוא:

npm is not here to punish people for spelling mistakes. npm is here to install your packages, even if you type "isntall".

גישה חיובית ולא מאוד נפוצה.