مولد package.json
فرم را به یک package.json کامل و آمادهاستفاده تبدیل کنید.
اسکریپتها
وابستگیها
وابستگیهای توسعه
دربارهٔ این ابزار
بدون حفظ کردن نام فیلدها، یک package.json معتبر بسازید
در حال اجرا npm init یک فایل بسیار ساده تحویلتان میدهد و بعد دوباره باید اسکریپتها و بلوکهای وابستگی را از پروژه قبلیتان کپی کنید. این مولد برای همه موارد واقعاً مهم یک فرم در اختیارتان میگذارد — نام، نسخه، نقطه ورود، اسکریپتها، وابستگیها، وابستگیهای توسعه، مجوز و نوع ماژول — و هنگام تایپ، JSON معتبر و با قالببندی صحیح میسازد؛ فایلی که مستقیماً آماده قرارگرفتن در یک پروژه جدید است.
نحوهٔ استفاده
- نام بسته، نسخه، توضیحات و نقطهٔ ورود را وارد کنید.
- یک مجوز انتخاب کنید، یا برای پروژهای خصوصی/اختصاصی «UNLICENSED» را انتخاب کنید (همچنین گزینه «Private» را علامت بزنید تا
npm publishبهطور تصادفی اجرا نمیشود). - CommonJS یا ES Modules را انتخاب کنید — این کار تعیین میکند
"type"فیلد که مشخص میکند Node چگونه فایلهای شما را پردازش کند.jsfiles asrequire()یاimportنحو. - اسکریپتها (start، build، test، lint و هر چیزی که اجرا میکنید) و هر وابستگی یا وابستگی توسعهای را همراه با بازه نسخه آنها اضافه کنید.
- JSON را کپی کنید یا آن را مستقیماً بهصورت فایل دانلود کنید
package.json.
موارد استفاده در دنیای واقعی
یک پروژه جدید Node را از صفر شروع کردهاید و میخواهید بهجای ویرایش فیلدبهفیلد در یک ساعت اول، در یک مرحله یک package.json کامل و صحیح داشته باشید. در حال راهاندازی یک ابزار داخلی کوچک هستید که نباید بهطور تصادفی در رجیستری عمومی npm منتشر شود. میخواهید بخش اسکریپتها (dev/build/test/lint) را در چندین مخزن یکسانسازی کنید تا همه پروژههای یک تیم، فرمانهای یکسانی را اجرا کنند.
سؤالات متداول
تفاوت dependencies و devDependencies چیست؟
dependencies بستههایی هستند که برنامهٔ شما هنگام اجرا به آنها نیاز دارد (مثل Express یا React). devDependencies فقط هنگام توسعه یا ساخت لازم هستند — اجراکنندههای آزمون، لینترها و باندلرها — و پس از ساخت یا استقرار برنامه دیگر موردنیاز نیستند.
"type": "module" در واقع چه کاری انجام میدهد؟
به Node.js میگوید که آن را بهعنوان .js فایلهای موجود در بسته را بهعنوان ES Modules مشخص میکند، بنابراین مینویسید import/export instead of require/module.exports. اگر کدبیس شما (یا وابستگیهای آن) همچنان انتظار دارد، آن را بهصورت CommonJS نگه دارید require().
چطور میتوانم جلوی انتشار تصادفی یک بسته در npm را بگیرم؟
تنظیم "private": true — npm از انتشار هر بستهای که این پرچم برای آن تنظیم شده باشد خودداری میکند؛ دقیقاً همان چیزی که برای ابزارهای داخلی و مخزنهای برنامهای میخواهید که قرار نبوده هرگز یک بسته عمومی باشند.
برای وابستگیها از چه قالب نسخهای استفاده کنم؟
یک بازهٔ نسخه با علامت caret مانند ^1.4.0 پیشفرض npm است و بهروزرسانیهایی را مجاز میکند که نسخه اصلی را افزایش نمیدهند. از ~1.4.0 برای محدود کردن به بهروزرسانیهای وصلهای، یا یک نسخه دقیق بدون پیشوند برای ثابتکردن کامل نسخه.
اگر از ES Modules استفاده میکنم، آیا به فیلد "main" نیاز دارم؟
بله، اصلی در هر صورت همچنان به فایل ورودی پکیج شما اشاره کند — همان فایلی که هنگام اجرای require('your-package') یا import 'your-package'. پروژههای بزرگتر با بیلدهای دوگانه گاهی این گزینه را اضافه میکنند exports آن را روی این مورد اضافه کنید، اما این کار ویرایش دستیای است که خارج از محدوده این تولیدکننده قرار دارد.
