Sokan Academy

تالار گفت‌وگوی آموزش npm


16 گفت‌و‌گو
کاربر میهمان

شما به عنوان کاربر میهمان در سایت سکان آکادمی حضور دارید لطفاً برای ارسال دیدگاه ابتدا وارد حساب خود شوید.

سلام و عرض ادب و احترام خیلی ممنون بابت اموزش بسیار عالی تون یه سوال داشتم اینکه من یک پکیجی را نصب کردم چطوری میتوانم از این پکیج استفاده کنم؟

سلام و عرض ادب و احترام خیلی ممنون بابت اموزش بسیار عالی تون یه سوال داشتم اینکه من یک پکیجی را نصب کردم چطوری میتوانم از این پکیج استفاده کنم؟

حسین عزیز، سلام و احترام با این پیش فرض که روی os تون node نصب باشه (و در نتیجه npm هم نصب باشه)، وقتی شما توی یه مسیر(دایرکتوری) دستور npm install some-package میزنین، npm اون پکیج رو توی اون مسیر نصب میکنه. و به این ترتیب به صورت خودکار چند تا فایل و دایرکتوری، توی مسیری که هستین ایجاد میشه: • دایرکتوری node_modules که توش همین پکیجی هست که تازه نصب کردین (یعنی some-package)، بعلاوه ی کد هر پکیجی که some-package توی کدش از اونا استفاده کرده. یعنی با زدن دستور نصب، npm میره کد اون پکیج، بعلاوه ی کدِ تمامی پکیج های وابستگی ش رو دانلود و نصب میکنه و میذاره توی دایرکتوری node_modules. • فایل package.json که همونطور که توی این دوره گفتیم، اسم و شماره نسخه ی پکیج های وابستگی پروژه ی فعلی (یعنی مسیر فعلی) رو به همراه یه سری اطلاعات دیگه توی خودش داره. • فایل package-lock.json که نمایش درخت واری از تمامی پکیج های وابستگی پروژه، به همراه وابستگیِ وابستگی ها و ... رو توی خودش داره. (درباره ی این فایل مفصل توی دوره توضیح دادیم) حالا وقتی کار دستور npm install some-package تموم شد، فایل های js مربوط به اون پکیج ها رو توی سیستم خودمون داریم، پس فقط کافیه توی هر script یا هر فایل js اون رو وارد کنیم و ازش استفاده کنیم. یعنی مثل هر زبان دیگه ای که توش کتابخونه include یا import میکنیم، اینجا هم باید فایل خروجی پکیجی که میخوایم ازش توی کدمون استفاده کنیم رو وارد کنیم.

حسین عزیز، سلام و احترام با این پیش فرض که روی os تون node نصب باشه (و در نتیجه npm هم نصب باشه)، وقتی شما توی یه مسیر(دایرکتوری) دستور npm install some-package میزنین، npm اون پکیج رو توی اون مسیر نصب میکنه. و به این ترتیب به صورت خودکار چند تا فایل و دایرکتوری، توی مسیری که هستین ایجاد میشه: • دایرکتوری node_modules که توش همین پکیجی هست که تازه نصب کردین (یعنی some-package)، بعلاوه ی کد هر پکیجی که some-package توی کدش از اونا استفاده کرده. یعنی با زدن دستور نصب، npm میره کد اون پکیج، بعلاوه ی کدِ تمامی پکیج های وابستگی ش رو دانلود و نصب میکنه و میذاره توی دایرکتوری node_modules. • فایل package.json که همونطور که توی این دوره گفتیم، اسم و شماره نسخه ی پکیج های وابستگی پروژه ی فعلی (یعنی مسیر فعلی) رو به همراه یه سری اطلاعات دیگه توی خودش داره. • فایل package-lock.json که نمایش درخت واری از تمامی پکیج های وابستگی پروژه، به همراه وابستگیِ وابستگی ها و ... رو توی خودش داره. (درباره ی این فایل مفصل توی دوره توضیح دادیم) حالا وقتی کار دستور npm install some-package تموم شد، فایل های js مربوط به اون پکیج ها رو توی سیستم خودمون داریم، پس فقط کافیه توی هر script یا هر فایل js اون رو وارد کنیم و ازش استفاده کنیم. یعنی مثل هر زبان دیگه ای که توش کتابخونه include یا import میکنیم، اینجا هم باید فایل خروجی پکیجی که میخوایم ازش توی کدمون استفاده کنیم رو وارد کنیم.

اگه به دایرکتوری پروژه برین و فولدر مربوط به هر کدوم از پکیج ها رو مشاهده کنین، میبینین که اونها هم یه فایل package.json دارن و یه ساختار فایلی برای پروژه. توی دوره اشاره کردیم که فایل خروجی پکیج ها، معمولاً همچین نامی دارن: index.js یا main.js یا ... . که معمولاً یا مستقیم توی دایرکتوری اون پکیج هستن، یا توی فولدری به نام dist. اما چطوری واردش کنیم؟ بسته به نوع module system ای که داریم استفاده میکنیم، یا میتونیم import ش کنیم و یا require ش کنیم. مثلاً اگه با node.js کدتون رو ران میکنین، خودِ node.js یه متد به نام require داره که میتونین باهاش فایل های جاوااسکریپت رو توی یه فایل .js دیگه وارد کنین. نوشتارش هم این شکلیه: let some-package = require(‘address-to-some-package’) مثلاً اگه توی یه پوشه ی خالی دستور npm install some-package رو بزنین، و بعد یه فایل test.js بسازین و توش بنویسین: Let someVar = require(‘./node_modules/some-package’) اون وقت کد رو با دستور node test.js ران بکنین، نود جی اس اول کد مربوط به فایل خروجیِ some-package رو ران میکنه و بعد اگه اون فایل مقداری رو export کرده باشه، اون مقدار رو میریزه توی متغیر someVar.

اگه به دایرکتوری پروژه برین و فولدر مربوط به هر کدوم از پکیج ها رو مشاهده کنین، میبینین که اونها هم یه فایل package.json دارن و یه ساختار فایلی برای پروژه. توی دوره اشاره کردیم که فایل خروجی پکیج ها، معمولاً همچین نامی دارن: index.js یا main.js یا ... . که معمولاً یا مستقیم توی دایرکتوری اون پکیج هستن، یا توی فولدری به نام dist. اما چطوری واردش کنیم؟ بسته به نوع module system ای که داریم استفاده میکنیم، یا میتونیم import ش کنیم و یا require ش کنیم. مثلاً اگه با node.js کدتون رو ران میکنین، خودِ node.js یه متد به نام require داره که میتونین باهاش فایل های جاوااسکریپت رو توی یه فایل .js دیگه وارد کنین. نوشتارش هم این شکلیه: let some-package = require(‘address-to-some-package’) مثلاً اگه توی یه پوشه ی خالی دستور npm install some-package رو بزنین، و بعد یه فایل test.js بسازین و توش بنویسین: Let someVar = require(‘./node_modules/some-package’) اون وقت کد رو با دستور node test.js ران بکنین، نود جی اس اول کد مربوط به فایل خروجیِ some-package رو ران میکنه و بعد اگه اون فایل مقداری رو export کرده باشه، اون مقدار رو میریزه توی متغیر someVar.

البته این راهی که گفتم خیلی ابتدایی و ساده هست، و معمولاً پروژه ها یه عالمه فایل دارن و یه عالمه وابستگی در هم تنیده، و ممکنه الزاماً با نود جی است ران نشن، و موتور دیگه ای مثل مرورگر بخواد اونها رو ران بکنه. برای همین برنامه نویس ها معمولاً از ابزار های bundler استفاده میکنن، مثل webpack. اگه شما از تکنولوژی ای استفاده میکنین که CLI داره (مثل create-react-app یا vue cli)، اینها خودشون پشت پرده webpack دارن و تنظیماتش رو انجام دادن و شما وقتی با استفاده از اینها پروژه میارین بالا، فقط کافیه پکیجی که میخواین رو npm install کنین و بعد هر جایی که خواستین ازش استفاده کنین، یعنی یا import ش کنین یا require. فکر کنم بحث خیلی مفصل شد، باز اگه سوالی بود در خدمتم.

سلام مطلب خیلی خوب و توضیحات جامعی راجبه npx بود سپاسگزارم ارادت معمارزاده

سپاس بیکران از این آموزش قدم به قدم عالی سوالم اینه که به دستوراتی که با یک یا دو خط تیره مثل p- و save-- چی میگن؟ و جزو چه مدل دستوراتی هستن؟ آیا قاعده ی خاصی برای این دستورات وجود داره؟

سپاس بیکران از این آموزش قدم به قدم عالی سوالم اینه که به دستوراتی که با یک یا دو خط تیره مثل p- و save-- چی میگن؟ و جزو چه مدل دستوراتی هستن؟ آیا قاعده ی خاصی برای این دستورات وجود داره؟

محمد عزیز، سلام و وقت بخیر خدمت شما، و ممنون از اظهار لطفتون... نه فقط تو دنیای npm، بلکه در کل محیط های لینوکس، ویندوز و در مجموع تو دنیای کامپیوتر، یه عُرف رایج هست که بسیاری از دستوراتی که در کامندلاین (یا در ترمینال) نوشته میشن، mode های مختلفی دارن، و این mode ها با خط تیره (یا دو تا خط تیره) در کنار یک عبارت مشخص میشن، به این خط تیره و عبارتِ کنارش، اصطلاحاً میگن parameter، یا flag یا option یا ... (در کل اسم زیاد داره) حالا اینکه اون mode دقیقاً چه تفاوتی با سایر mode های یه دستور داره، توسط خود کسی که دستور رو طراحی کرده مشخص میشه. بعنوان مثال توی npm، ما یه دستور داریم به نام npm install که میتونه با حالات (یا همون mode های) مختلفی نصب بشه. حالا ما تفاوت این مود ها رو تو این مقاله توضیح دادیم، مثلاً گفتیم که یکی شون یه وابستگی رو صرفاً برای زمان توسعه نصب میکنه، یکی شون اون وابستگی رو برای همه ی حالات نصب میکنه و ... .

این دوره فوق العادس جا داره تشکر کنم بابت انتشار این دوره

این دوره فوق العادس جا داره تشکر کنم بابت انتشار این دوره

نظر منم همینه

بسیار عالی <br />سپاسگزارم بابت انتشاراین دوره🙏

اگه دو تا برنامه داشته باشیم ( ری اکت برای فرانت و نود برای بک) میتونیم اسکریپتی بنویسیم که با شروع برنامه ی نود خود به خود ری اکت رو هم شروع کنه. یعنی به خارج از فولدری که قرار داره ازش آدرس بدیم و برنامه رو اجرا کنه؟

sokan-academy-footer-logo
کلیه حقوق مادی و معنوی این وب‌سایت متعلق به سکان آکادمی می باشد.