بنظرم که غیر ممکنه که یه مدت کدنویسی کرده باشین و اسم بزرگوار npm رو نشنیده باشین! تا قبل سال 2009 کدهای جاوااسکریپت فقط میتونست توی مرورگر اجرا بشه.
میدونی چطوریه؟ هر مرورگری یه موتور جاوااسکریپت داره و کدهای js رو میگیره و به زبان قابل فهم ماشین تبدیل میکنه. پس تا اینجا متوجه شدیم وجود مرورگر لازمه. اما...
یه خفن به اسم Dahl Ryan گفتش چطوره js رو خارج از مرورگر و سمت سرور اجرا کنیم ؟ زیبا نیست ؟ حرکتی که زد رفتش سمت موتور جستجو کروم (v8) اونو برداشت گذاشت تو یه سری کد ++c و یه چیزی متولد شد به اسم nodejs عملا مرورگر رو این وسط حذف کرد. خب بعدش...
حال با استفاده از node js میتوانیم کدهای جاوااسکریپت را خارج از مرورگر و برای کارهایی مانند ارتباط با دیتابیس و مدیریت فایل ها و انجام درخواست ها استفاده کنیم. برای اینکه پکیج های مربوط به nodejs به خوبی مدیریت شوند، package manager ی به اسم npm ارائه شد.
یعنی npm فقط برای node js هست ؟ خیر اصلا! اتفاقا خوبی npm همینه. این روزا پلتفرم های زیادی مثل انگولار، ریکت، نکست و.. کتابخونه ها(یا همون پکیج) خودشون رو با npm مدیریت میکنن.
خو که چی ؟ ببین تصور کن(من هی میگم تصور کن!!)، چندتا کتابخونه نصب کردی، مثل material-ui, react-select, react-dropzone ,...حالا بعد نصب npm یه فایلی ایجاد میشه به اسم package.json که اسم تک تک اینا رو داره. حالا کدت رو میدی به همکارت و اون کافیه بزنه npm i و همه ی این ها برای اونم نصب میشه.
چند دبلیل استفاده از npm ؟
1 : افزودن پکیج های مختلف به پروژه
2 : اجرا کردن پکیج ها بدون دانلود با استفاده از اجرای دستور در line command .
3 : بروزرسانی آسان پکیج های استفاده شده
4 : اشتراک گذاری کدها با سایر کاربران npm
5 : کنترل آسان ورژن پروژه
کافیه بری توی سایت nodejs.org/en و آخرین نخسه پایدار nodejs رو نصب کنی. همزمان npm هم نصب میشه. هر پکیجی رو خواستی کافیه بزنی npm i packageName مثلا، npm i react-select .