: اگر درگیر پروژه های جاوا اسکریپتی بوده باشید و از npm هم استفاده کرده باشید حتما داخل دایرکتوری پروژتون چشمتون به فایلی با نام package . json خورده. خب این یک فایل با فرمت json هستش که یک سری اطلاعات را درمورد پروژه شامل میشه و مثلا باعث میشه npm بتونه پروژتون رو مدیریت کنه و. (البته این تنها فایده این فایل نیست) همونطور که گفتیم package . json یک فایل با فرمت جیسون هستش پس از یک سری key و value ها ساخته شده که آشنایی با اون ها مارو با این فایل بیشتر آشنا می کنه: name : این key همون نام پروژتونه و اگر میخاین یک پکیج npm بسازید و اون رو publish کنید حتما قبل انتخاب اسم داخل سایت npm سرچ کنید که اسم مدنظرتون قبلا توسط کسی دیگه ای گرفته نشده باشه. اگر هم پروژتون قرار نیست داخل npm منتشر بشه اهمیتی از این نظر نداره. version : این فیلد ورژن کنونی پروژه تون رو مشخص می کنه که درصورتی که میخاین پروژتون رو در npm منتشر کنید این فیلد مهمه و هر بار که میخاین پکیجتون رو در npm آپدیت کنید باید ورژن بالاتری نسبت به ورژن قبلی داخل فایل package . json تون باشه. description : این فیلد توضیحات مربوط به پروژتونه که بهتره داخلش توضیح بدین کاری پروژتون انجام میده دقیقا چه چیزی هستش و درصورت انتشار پروژتون به مردم کمک میکنه بهتر اون رو پیدا کنند. repository : در این فیلد repository پروژتون یعنی همون جایی که کدتون رو قرار میدید رو مشخص میکنید و از هرنوعی میتونه باشه ( git , svn . برای مثال میتونید کد زیر رو ببینید: scripts : این فیلد شامل یک سری اسکریپت هایی میشه که در زمان های مختلف میتونند اجرا بشوند برای مثال کد زیر رو ببینید: خب این کد در package . json شما باعث میشه که قبل start پروژه شما مقدار hello در ترمینال شما نمایش داده بشه: ) (البته در لینوکس) و لیست کامل لایف سایکل هاش رو میتونید ببینید. config : این فیلد شامل مقداریه که شما در فیلد قبلی ینی scripts استفاده کردید ینی برای مثال اگر داخل package . json مون مقادیر زیر رو داشته باشیم: حال داخل فایل sayHello . js که قرار بوده قبل استارت پروژه ران بشه ما به مقدار name که داخل کانفیگ تعریف کردیم طبق کد زیر دسترسی داریم: یعنی process . env . npm _ package _ config _ رو دقیقا به قبل name اضافه میکنیم. dependencies : مهم ترین فیلد package . json هستش که شامل تمام پکیج هاییه که برای پروژتون لازمه و هم چنین ورژن اون هارو هم درون خودش داره و هر بار که شما یک چیزی رو نصب میکنید داخل این فیلد (یا فیلد های مشابهش) نوشته میشه. مثلا اگر کامند زیر رو داخل دایرکتوری پروژتون بزنید: در این صورت داخل package . json تغییری مثل کد زیر رخ خواهد داد: که میگه این پروژه به لایبرری react در ورژن . . و درصورت وجود بالاترش نیاز داره. فیلد هایی مشابه دیگه ای مثل devDependencies هم وجود داره که مختص زمان خاصی اند مثلا ممکنه یک سری از نیازمندی هاتون فقط برای فاز توسعه باشه مثل prettier که فقط برای فرمت دهی کد هاتون استفاده میشه این نیاز مندی هارو بهتره در devDependencies قرار بدین.