راکت

حجم زیاد node module

6 پاسخ

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

Saied Hr
Saied Hr
@saeedlovelorn2
ثبت پرسش جدید

پاسخ‌ها

6
saman
saman
@saman1111

سلام
منظورتون چیه ؟
ماژول ها داخل node_modules قرار میگیرن

Saied Hr
Saied Hr
@saeedlovelorn2

@saman1111
داخل nodemodules ، ماژول های خیلی زیادی وجود داره که باعث میشه حجم پروژه زیاد شه
اگه ی ماژول که برای پروژم نیاز بود رو نصب کردم بعدش میتونم بقیه ی ماژول های داخل nodemodules رو حذف کنم یا این کار باعث میشه پروژم به درستی کار نکنه؟

شاید پاسخ شما همین‌جا باشد

saman
saman
@saman1111

هر ماژولی که نیاز باشه براتون نصب میشه توی اون پوشه
شما هر ماژولی که نصب می کنید اون اضافه میشه به اون پوشه
هر ماژولی اونجا هست یا شما نصب کردید یا برای کارکرد پروژتون نیاز بوده که نصب شده

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

دوست عزیز، پوشه node_modules فقط برای محیط development تون هست و نباید روی سرور بارگزاری کنید. بعد از اینکه فرایند توسعه پروژتون تمام شد باید asset های جاوااسکریپتی و css تون رو کامپایل کنید و فقط نسخه کامپایل شده اش رو روی سرور بارگزاری میکنید.

اگر هم نگران حجم پروژتون در محیط لوکال هستید به نظرم نباید دغدغه مهمی باشه براتون و اینکه تقریبا چاره ای نیست. مگر اینکه اگر حالا حالا ها با اون پروژه کار ندارید کل فولدر node_modules رو حذف کنید و هر وقت دوباره نیاز شد دوباره با npm install نصب کنید. ولی خوب چه کاریه؟

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

اسماعیل نصرتی
اسماعیل نصرتی
@mr.e.nosrati

تخصص: طراح صنعتی

@mhyeganeh
سلام. من الان توی پروژه میخوام مثلا از یه ویدئو پلیر استفاده کنم Video.js رو نصب میکنم توی پروژه ای که تازه ساختم!
 تصویر

الان میخوام یه فایل html توی پروژه تعریف کنم و از فایل های Video.js توی اون پروژه استفاده کنم! مثلا برای Taliwind میتونم توی پروژم با کانفیگ کردنش طبق آموزش هاش اونو توی پروژم استفاده کنم اما برای پروژه هایی مثل Video.js که راهنمایی در این مورد ندارن باید چجوری ازش توی پروژه استفاده کنم و بخش های مورد نیازشو شخصی سازی کنم ؟

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

@mr.e.nosrati

بعد از نصب از طریق NPM شما نیاز به یک Bundler دارید. یعنی ابزاری که با استفاده از اون بیاید کلیه کدهای مورد نیاز برای پروژتون رو از داخل پوشه Nodemodules و ... بردارید و با هم ترکیب کنید و یک خروجی در پوشه public به شما تحویل بده که همون فایلی هست که نهایتا توسط کاربران لود میشه.

در هر پکیج داستان ممکنه متفاوت باشه و پکیج های جدید معمولا نحوه درست import کردن رو در مستنداتشون میارن. مثلا اگر از ES6 پشتیبانی بکنند یک چیزی مثل این میشه:

import VideoJS from 'video.js';
window.VideoJS  = VideoJS;

یکی از ابزارهای معروف bundler وب‌پک (Webpack ) هست اگر شنیده باشید که در لاراول به کمک ابزار Laravel Mix و فایل webpack.mix.json تنظیماتش اعمال میشه.

خلاصه کلام اینکه پوشه nodemodules فقط برای محیط development هست و نباید روی سرور بارگزاری بشه.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام