سلام به کاربران عزیز وب سایت tosinso. در قسمت قبل در مورد اینکه package manager چیست و به چه دردی میخورد و دیدیم که با تکنولوژی های امروزی حتماً نیاز به package manger داریم. در این مطلب میخواهم در مورد یکی از معروف ترین package manager ها صحبت کنیم و آنpackage manager مربوط به node js یا npm است.
شاید اگر به ۱۰ سال پیش برگردیم زبان جاوا اسکریپت یک زبانی بود که بر روی مرورگر قرار داشت و کار مهمی که با آن انجام میدادیم یک انیمیشن بود ک در صفحه وب خود میدیدیم که مثلاً یک منو به صورت انمیشینی به صورت کشویی باز میشد و حرکات اینچنینی داشت.(میدونم که الان به این چیز ها می خندین ولی زمان خودش کار جالبی بود). بعد از اینکه امکاناتی مانند ajax و promise ها و چند امکان دیگر به زبان جاوا اسکریپت اضافه شد به سرعت دیدیم که تکنولوژی های بسیاری برای زبان جاوااسکریپت ارائه شد که کتابخانه jquery یکی از پیشرفتهای زبان جاوا اسکریپت بود و بعد از آن هم تکنولوژی های زیادی ارائه شد. در تصویر زیر عکس چند تا از این تکنولوژی ها رو گذاشتیم.
به دلیل ویژگیهایی که زبان جاوا اسکریپت دارد این زبان هر روز محبوبتر می شود. ولی تا چند سال پیش این زبان فقط بر روی مرورگر و به عنوان رابط کاربری اجرا میشد تا اینکه شرکت گوگل یک موتور به نام v8 ارائه داد که میتوانست جاوااسکریپت را بر روی سرور و خارج از مرورگر اجرا کند و نام تکنولوژی آن node js گذاشته شد. حال با استفاده از node js میتوانیم کدهای جاوااسکریپت را خارج از مرورگر و برای کارهایی مانند ارتباط با دیتابیس و مدیریت فایل ها و انجام درخواست ها استفاده کنیم.
یادگیری برنامه نویسی برای متخصصین حوزه کامپیوتر این روزها یک الزام به حساب می آید. از جمله محبوب ترین زبان های برنامه نویسی دنیا می توانیم به زبان برنامه نویسی سی شارپ ، زبان برنامه نویسی جاوا ، زبان برنامه نویسی پایتون ، زبان برنامه نویسی سی پلاس پلاس و زبان برنامه نویسی SQL ( لازمه هر زبان دیگری ) و زبان برنامه نویسی PHP اشاره کنیم.
برای آموزش برنامه نویسی می توانید با خیال راحت در قالب دوره های آموزش برنامه نویسی سایت توسینسو ، آموزش سی شارپ ، آموزش جاوا ، آموزش پایتون ، آموزش جنگو ، آموزش PHP ، آموزش جاوا اسکریپت ، آموزش برنامه نویسی اندروید ، آموزش SQL و آموزش MySQL را بصورت جامع و حرفه ای آموزش ببینید.
برای اینکه پکیج های مربوط به node js به خوبی مدیریت شوند package manager ی به نام npm که مخفف node package manager است ارائه شد. Npm خیلی قوی بوده و کتابخانههای بسیاری را پشتیبانی می کند. نکته جالب این که حتی شما میتوانید خود npm را با npm آپدیت و مدیریت کنید. البته اینکه بگیم npm فقط برای node js است امروزه اشتباه است. زیرا که تکنولوژی های دیگری مثل react, angular, … نیز برای مدیریت پکیج های خود از npm استفاده می کنند.
نحوه کار npm میتواند به دو صورت باشد. محلی یا سراسری. در روش سراسری وقتی شما بسته ای را نصب میکنید آن پکیج بر روی کامپیوتر شما نصب میشود و شما میتوانید هر وقت که خواستید از آن بسته استفاده کنید. البته در سیستمهایی مانند لینوکس شما باید برای نصب پکیج ها به صورت سراسری دسترسی root داشته باشید. روش دیگر روش محلی است. روش محلی به این صورت است که بسته هایی را که برای پروژه لازم دارید به صورت محلی برای همان پروژه نصب کنید و اگر برای پروژه دیگری دوباره همان بسته را لازم داشتیم لازم است که آن بسته برای آن پروژه نیز نصب شود.npm برای مدیریت پکیج های محلی یک پروژه از فایلی به نام package.json استفاده می کند. اکثر پکیج ها به صورت محلی نصب میشوند ولی بعضی بسته ها مانند خط فرمان angular را بهتر است که به صورت سراسری نصب کنیم که هر جا خواستیم از آن بتوانیم استفاده کنیم.
قرار نیست که به صورت کامل همه دستورات npm را در این مطلب توضیح دهیم ولی چند تا از دستورات رایج npm را معرفی میکنیم که بدانیم چگونه میتوان از آنها استفاده کرد.
وقتی میخواهیم یک پروژه را شروع کنیم برای اینکه تنظیمات اولیه و مشخصات پروژه را ثبت کنیم از دستور init استفاده می کنیم. نحوه نوشتن این دستور به شکل زیر است:
npm init
با زدن این دستور npm اطلاعات کلی پروژه را از شما دریافت میکند اطلاعاتی مثل
بعد از اینکه اطلاعات پروژه را وارد کردید یک کد json به شما نشان داده میشود تا آن را تأیید کنید. در صورت تأیید این کد json به نام فایل package.json برای برنامه شما ذخیره می شود.
دستور insall پرکاربرد ترین دستور npm است. با استفاده از این دستور پکیج ها را نصب می کنیم.پکیج ها در یک پوشه در داخل پروژه به نامه node_modules قرار داده می شوند. در مثال زیر پکیج axios را به صورت محلی نصب کرده ایم.
npm install axios --save
دقت کنید که سوییچ save برای این است که پکیج به صورت محلی نصب شود و اطلاعات آن در داخل فایل package.json ذخیره شود. این ذخیره شدن اطلاعات package در فایل package.json مزیای بسیاری دارد. ولی یکی از مهمترین مزیتهای آن این است حجم پکیج های یک پروژه ممکن است زیاد باشد که در کارهای تیمی ارسال این پکیج ها برای هم تیمی ها کار درستی نیست زیرا حجم و هزینه زیادی را لازم دارد. در عوض شما میتوانید فایل package.json را بفرستید. با استفاده از این فایل npm میتواند همه پکیج ها را دانلود و نصب کند. اگر پروژه های جاوا اسکریپتی را در سایت github.com بررسی کنید میبینید که در هیچ کدام از پروژه ها پکیج ها آپلود نشدهاند و فقط فایل package.json وجود دارد. برای اینکه پکیج های یک پروژه جاوا اسکریپتی را دریافت کنید باید دستور زیر را بزنید
npm install
تا در محل پروژه همه پکیج ها را دریافت کنید.همچنین برای اینکه یک پکیج به صورت سراسری نصب شود باید دستور install را با سوییچ g به کار برد برای مثل دستور زیر typescript را به صورت سراسری نصب میکند
npm install typescript -g
در داخل پروژه میتوان این دستور را برای آپدیت کردن ورژن پکیج ها و همچنین اگر تغییری به صورت دستی در فایل pockage.json داده باشید با استفاده از این دستور میتوانید تغییر مورد نظر را بر روی خود بسته ها اعمال کنید.
شاید این سؤال پیش بیاید که پکیج های محلی که درداخل پوشه node_modules ریخته می شوند. ولی پکیج های سراسری کجا ذخیره می شوند. برای اینکه بدانید پکیج های سراسری کجا ذخیره میشوند از دستور list استفاده می شود. اگر این دستور را به شکل زیر اجرا کنید محل پکیج های سراسری به شما نشان داده می شود.
npm list -g
بعد از اجرای این دستور در خط اول آدرس پوشه node_modules که پکیج های سراسری در آن نصب شده است را نشان میدهد و بعد از آن ساختار درختی پکیج های سراسری را نمایش میدهد مانند تصویر زیر
با وب سایت tosinso همراه باشید.
نویسنده: مهدی عادلی فر
منبع: tosinso.com
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.
بنیانگذار توسینسو و برنامه نویس
مهدی عادلی، بنیان گذار TOSINSO. کارشناس ارشد نرم افزار کامپیوتر از دانشگاه صنعتی امیرکبیر و #C و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود