برنامه نویسی

pack.json – جامعه dev

در Node.js و اکوسیستم JavaScript ، package.json پرونده بسیار بیشتر از یک پرونده پیکربندی ساده است. این به عنوان آشکار برای پروژه شما عمل می کند ، دارای ابرداده ضروری ، وابستگی ها ، اسکریپت ها و موارد دیگر است. درک عمیق از package.json به شما این امکان را می دهد تا گردش کار توسعه خود را بهینه کنید ، استقرار را ساده کنید و قوام را در محیط های مختلف حفظ کنید.

این راهنما به هر جنبه ای از package.json از ابرداده های اساسی گرفته تا پیکربندی های پیشرفته ارائه بینش های عملی و بهترین شیوه ها برای کمک به شما در تسلط بر این پرونده مهم.

pack.json چیست؟

در package.json پرونده یک سند با فرمت JSON است که به عنوان قلب پروژه Node.js شما عمل می کند. فراهم می کند:

  • ابرداده پروژه: اطلاعاتی مانند نام پروژه ، نسخه ، توضیحات ، نویسنده و مجوز.
  • وابستگی: لیستی از بسته هایی که پروژه شما نیاز به اجرای آن دارد ، به تولید (وابستگی) و توسعه (وابستگی های وابسته) تقسیم می شود.
  • اسکریپت: دستورات سفارشی برای اتوماسیون وظایف مانند شروع سرور ، تست های در حال اجرا یا ساخت پروژه خود.
  • تنظیمات پیکربندی: متغیرهای خاص محیط و تنظیمات سفارشی.
  • مشخصات موتور: Node.js و سازگاری نسخه NPM برای اطمینان از یک محیط زمان اجرا مداوم.

درک این مؤلفه ها برای مدیریت مؤثر پروژه مهم است.

ایجاد یک پرونده Package.json

برای ایجاد package.json پرونده ، دستور زیر را اجرا کنید:

npm init
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این دستور تعاملی شما را برای جزئیات بیشتر در مورد پروژه خود سوق می دهد. برای تنظیم سریع با مقادیر پیش فرض ، از:

npm init -y
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

ساختار عمیق Pack.Json

1. اطلاعات اساسی

این زمینه ها جزئیات اساسی در مورد پروژه شما ارائه می دهند:

{
  "name": "my-project",
  "version": "1.0.0",
  "description": "A sample project demonstrating package.json usage",
  "author": "John Doe ",
  "license": "MIT"
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • نام: شناسه منحصر به فرد برای پروژه خود ، به طور معمول حروف کوچک و hyphenated.
  • نسخه: دنبال کردن نسخه معنایی (SEMVER) (major.minor.patch).
  • شرح: توضیح مختصری در مورد پروژه شما.
  • نویسنده: اطلاعات تماس برای نگهدارنده.
  • مجوز: مجوز حقوقی که در آن پروژه منتشر می شود.

2. وابستگی ها

وابستگی ها کتابخانه های مهمی هستند که به پروژه شما نیاز دارند.

الف) وابستگی منظم

این بسته ها در تولید مورد نیاز است:

"dependencies": {
  "express": "^4.18.2",
  "mongoose": "^6.9.2"
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

آنها را با: نصب کنید.

npm install express mongoose
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

ب) وابستگی های توسعه

اینها فقط در طول توسعه مورد نیاز است (به عنوان مثال ، چارچوب های آزمایش ، خطوط):

"devDependencies": {
  "jest": "^29.6.3",
  "eslint": "^8.54.0"
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

نصب با استفاده از:

npm install --save-dev jest eslint
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

ج) وابستگی های همسالان و اختیاری

  • پندار: بسته هایی را که پروژه میزبان باید ارائه دهد مشخص کنید. این برای افزونه ها و کتابخانه هایی که برای کار در کنار سایر چارچوب ها طراحی شده اند ، معمول است.
  • OplealDependencies: وابستگی های لیستی که باعث افزایش عملکرد می شوند اما ضروری نیستند ، از عدم وجود خرابی در صورت وجود آنها جلوگیری می شود.

3 اسکریپت

اسکریپت ها وظایف تکراری را خودکار می کنند:

"scripts": {
  "start": "node server.js",
  "dev": "nodemon server.js",
  "test": "jest --coverage",
  "build": "webpack --mode production",
  "lint": "eslint ."
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اسکریپت ها را با استفاده از:

npm run start
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

تکنیک های پیشرفته برنامه نویسی

  • قلاب های قبل و پست: اسکریپت ها را به طور خودکار قبل یا بعد از یک دستور اجرا کنید. به عنوان مثال ، prebuild قبل از buildوت postbuild بعد از آن اجرا می شود.

    "scripts": {
      "prebuild": "npm run lint",
      "build": "webpack --mode production",
      "postbuild": "echo Build complete!"
    }
    
  • اسکریپت های پلتفرم: از بسته هایی مانند استفاده کنید cross-env برای اطمینان از اجرای اسکریپت ها در ویندوز ، MacOS و Linux.

4. موتورها

node.js و نسخه های NPM را تعریف کنید که پروژه شما با:

"engines": {
  "node": ">=16.0.0",
  "npm": ">=7.0.0"
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

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

5. مخزن و اشکالات

ارائه اطلاعات مخزن باعث افزایش شفافیت و همکاری می شود:

"repository": {
  "type": "git",
  "url": "https://github.com/username/my-project.git"
},
"bugs": {
  "url": "https://github.com/username/my-project/issues"
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

6. کلمات کلیدی و پیکربندی

  • کلمات کلیدی: به کاربران کمک می کند تا پروژه شما را در NPM پیدا کنند. کلمات کلیدی مربوطه را در یک آرایه قرار دهید.

    "keywords": [
      "nodejs",
      "package.json",
      "npm",
      "javascript"
    ]
    
  • پیکربندی: متغیرهای پیکربندی سفارشی که پروژه یا اسکریپت های شما می توانند به آنها مراجعه کنند.

    "config": {
      "port": "3000",
      "env": "development"
    }
    

7. زمینه های اضافی

بسته به نیاز پروژه خود ، ممکن است این زمینه ها را درج کنید:

  • خصوصی: تنظیم کنید true برای جلوگیری از انتشار تصادفی به NPM.

    "private": true
    
  • اصلی: نقطه ورود پروژه شما (مخصوصاً برای کتابخانه ها).

    "main": "index.js"
    
  • پرونده ها: پرونده هایی را که هنگام انتشار بسته خود شامل می شود ، مشخص می کند.

    "files": [
      "lib/",
      "index.js"
    ]
    
  • عوارض جانبی: نشان می دهد که آیا ماژول های شما دارای عوارض جانبی هستند و در هنگام بسته بندی به لرزش درخت کمک می کنند.

    "sideEffects": false
    

بهترین روشها برای مدیریت بسته

  1. نسخه معنایی: همیشه برای برقراری ارتباط به وضوح به SEMVER رعایت کنید و از شکستن تغییرات به طور غیر منتظره جلوگیری کنید.
  2. وابستگی های قفل: استفاده کنید package-lock.json (یا yarn.lock) برای اطمینان از نسخه های وابستگی مداوم در محیط ها.
  3. اسکریپت های لاغر: اسکریپت ها را ساده و مدولار نگه دارید. برای کارهای پیچیده ، منطق حرکت را به پرونده های اسکریپت اختصاصی در نظر بگیرید.
  4. ممیزی منظم: استفاده کنید npm audit به طور منظم برای آسیب پذیری در وابستگی های خود اسکن کنید.
  5. از .NPMRC استفاده کنید: رفتار NPM را برای پروژه خود سفارشی کنید .npmrc پرونده ، که می تواند تنظیمات رجیستری ، سیاست های حافظه پنهان و موارد دیگر را مشخص کند.
  6. مستند سازی: مستندات واضح را حفظ کنید (به عنوان مثال ، یک پرونده Readme) توضیحات پیکربندی ها و اسکریپت های سفارشی را در خود توضیح دهید package.jsonبشر
  7. مدیریت یکپارچه: در صورت مدیریت چندین بسته در یک مخزن واحد ، استفاده از ابزارهایی مانند Lerna یا Worklace Paces را در نظر بگیرید تا مدیریت و نسخه های وابستگی را ساده تر کنید.

نکات و ترفندهای پیشرفته

مدیریت خودکار نسخه

  • اهرم npm version برای خودکارسازی به روزرسانی های نسخه ، مرتکب تغییر و انتشار برچسب ها:

    npm version patch
    
  • این دستور شماره نسخه را مطابق با SEMVER به روز می کند ، مرتکب تغییر می شود و نسخه را برچسب می زند و روند انتشار را ساده می کند.

یکپارچه سازی بسته. json با خطوط لوله CI/CD

گردش کار مدرن ادغام package.json خط لوله های ادغام مداوم و استقرار مداوم (CI/CD):

  • قلاب های قبل از ایجاد: از ابزارهایی مانند Husky برای اجرای خطوط و آزمایش قبل از تعهد استفاده کنید.
  • نسخه های خودکار: ترکیب کنید npm version با ابزارهای CI/CD (به عنوان مثال ، اقدامات GitHub ، Travis CI) برای اتوماسیون فرآیندهای آزمایش ، ساختمان و استقرار.

سفارشی سازی رفتار NPM

  • با ایجاد یک محیط NPM خود را سفارشی کنید .npmrc در فهرست پروژه خود پرونده کنید. این پرونده می تواند یک رجیستری سفارشی ، تنظیم گزینه های ذخیره سازی یا اجرای SSL سختگیرانه را تعریف کند:

    registry=https://registry.npmjs.org/
    strict-ssl=true
    
  • چنین تنظیماتی می تواند به مدیریت وضوح وابستگی و بهبود قابلیت اطمینان ساختهای شما کمک کند.

پایان

در package.json پرونده قطب اصلی برای پیکربندی و مدیریت پروژه های Node.js شماست. با درک و استفاده از هر جنبه – از ابرداده و وابستگی به اسکریپت ها و تنظیمات سفارشی – می توانید گردش کار توسعه خود را ارتقا دهید ، از ثبات پروژه اطمینان حاصل کنید و همکاری ساده ای را انجام دهید.

تسلط package.json برای هر توسعه دهنده مدرن JavaScript ضروری است. شروع به اصلاح خود کنید package.json امروز و یک فرآیند توسعه کارآمدتر ، حفظ و مقیاس پذیر را باز کنید.

برنامه نویسی مبارک!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا