این قالبگذار .env چه کمکی به شما میکند
- خطوط `KEY=VALUE` را نرمالسازی میکند در حالی که نظرات و خطوط خالی برای گروهبندی قابل خواندن توسط انسان حفظ میشوند
- فاصلههای اطراف `=` و مقادیر را پاک میکند برای اسکن آسانتر و diffهای فشردهتر در بررسیها
- کلیدهای تکراری را نشان میدهد تا ببینید کدام یک در زمان اجرا واقعاً اعمال میشود به جای حدس زدن
- فاصلههای انتهایی را حذف میکند و (به صورت اختیاری) از طریق گزینه **درج خط جدید نهایی** یک خط جدید در انتهای فایل تضمین میکند
- خطوط نظرات (`# ...`) را حفظ میکند و کاراکترهای `#` داخل مقادیر را دستنخورده نگه میدارد
- placeholders مانند `${VAR}` و دنبالههای escape را دقیقاً همانطور که نوشته شدهاند حفظ میکند بدون انجام expansion
- با پروژههای چندسکویی به خوبی کار میکند با نرمالسازی layout برای LF/CRLF و جلوگیری از surprises مربوط به BOM
- استخراج یک `.env.example` بدون رمز را آسان میکند (کپی کلیدها و ساختار، حذف مقادیر production)
- ویرایشگر دوستانه: فایلهای با سبک `.env` را paste یا upload کنید، نتیجه را پیشنمایش کنید، سپس خروجی تمیز شده را کپی یا دانلود نمایید
🔧 نحوه پاکسازی و قالبدهی فایل .env شما for env-formatter
1. پیست یا آپلود .env شما
فایل `.env` خود را در ویرایشگر رها کنید یا محتوا را مستقیماً پیست نمایید. این ابزار برای فرمتهای معمول dotenv مانند `.env`، `.env.local`، `.env.production`، `.env.test`، `.env.staging`، `.env.example` و غیره طراحی شده است.
2. بررسی و تنظیم گزینههای فرمتدهی
گزینههای موجود (مانند **درج خط جدید پایانی**) را فعال یا غیرفعال کنید و تصمیم بگیرید چگونه میخواهید کلیدها و نظرات را سازماندهی کنید. بسیاری از تیمها از این مرحله برای اعمال گروهبندی یکپارچه استفاده میکنند—مثلاً بخشهای `APP_`، `DB_`، `NEXT_PUBLIC_`.
3. پیشنمایش، کپی یا دانلود
خروجی تمیز شده را بررسی کنید، مطمئن شوید که موارد تکراری و نظرات صحیح به نظر میرسند، سپس آن را به ویرایشگر خود برگردانید یا `.env` فرمت شده را دانلود کنید. از ساختار نرمال شده به عنوان پایهای برای `.env.example` یا سایر انواع محیط استفاده کنید.
مشخصات فنی
فایلها و انواع پشتیبانی شده
فرمتدهنده فایلهای پیکربندی سبک dotenv استاندارد، از جمله قراردادهای متداول فریمورک را مدیریت میکند.
| پسوند / الگو | نوع | کاربرد معمول |
|---|---|---|
| .env | پیکربندی پایه | مقادیر پیشفرض برای تمام محیطها |
| .env.local | بازنویسیهای محلی | مخصوص ماشین (معمولاً در git نادیده گرفته میشود) |
| .env.development | نوع محیط | تنظیمات توسعه |
| .env.production | نوع محیط | تنظیمات استقرار |
| .env.test | نوع محیط | تستهای CI / واحد |
| .env.staging | نوع محیط | پیکربندیهای استیجینگ یا پیشنمایش |
| .env.example / .env.sample | قالب | فایل مثال مشترک بدون اسرار واقعی |
| انواع MIME | text/plain, text/x-dotenv, application/x-env | انواع محتوای رایج مورد استفاده توسط ویرایشگرها و ابزارها |
قوانین تجزیه (سبک dotenv)
فرمتر طراحی شده است تا با تجزیهکنندههای محبوب dotenv در زبانهای مختلف سازگار باشد.
| جنبه | رفتار | یادداشتها |
|---|---|---|
| کلیدها | حساس به حروف، معمولاً `A–Z`، ارقام و `_` | UPPER_SNAKE_CASE برای خوانایی توصیه میشود |
| تخصیص | خطوط به شکل `KEY=VALUE` | فاصلههای اطراف `=` و مقادیر توسط فرمتر نرمال میشوند |
| توضیحات | خطوطی که با `#` شروع میشوند | `#` داخل مقادیر نقلقولشده به عنوان بخشی از مقدار در نظر گرفته میشود |
| نقلقولها | تک `'…'` یا دوتایی `"…"` | فرارهایی مانند `\n` و `\t` در داخل نقلقولهای دوتایی حفظ میشوند |
| درونیابی | `${VAR}` به صورت تحتاللفظی نگهداری میشود | هیچ گسترش یا ارزیابی شبه-پوستهای انجام نمیشود |
| خطوط خالی | برای حفظ بخشهای منطقی نگهداری میشوند | هنوز میتوانید به صورت دستی جمعآوری یا گروهبندی مجدد کنید |
| تکرارها | خطوط متعدد با کلید یکسان نمایش داده میشوند | رفتار معمول dotenv: آخرین مقدار در زمان اجرا برنده میشود |
نرمالسازی و خطوط جدید
فرمتر هدف کاهش نویزهای خاص پلتفرم در تفاوتها را دارد: فاصلههای اطراف `=`، فاصلههای سرگردان انتهایی و خطوط جدید نهایی میتوانند نرمال شوند. گزینه **درج خط جدید نهایی** یک خط جدید EOF را تضمین میکند تا Git و ویرایشگرهای مختلف حتی در تفاوتهای LF/CRLF همگام بمانند.
حریم خصوصی و امنیت
فرمتدهی توسط یک بکاند امن مخصوص این ابزار مدیریت میشود و فقط برای پردازش موقت در نظر گرفته شده است—هیچ API شخص ثالثی تماس گرفته نمیشود. با این حال، امنترین روش هنوز اجتناب از چسباندن اسرار تولید در ابزارهای مبتنی بر مرورگر است: ترجیحاً فایلهای پاکشده `.env.example` را ویرایش کنید و اسرار واقعی را در یک گاوصندوق یا مخزن اسرار CI نگهدارید.
جایگزینها و قطعات خط فرمان
ترمینال را ترجیح میدهید؟ در اینجا چند بلوک سازنده برای تقلید از برخی رفتارهای این فرمتر با استفاده از ابزارهای رایج CLI آورده شده است.
لینوکس/macOS
مرتبسازی کلیدها (پایه، توضیحات/خطوط خالی را نادیده میگیرد)
grep -v '^\s*#' .env | grep -v '^\s*$' | sort > sorted.envخطوط غیر-توضیحی را به ترتیب الفبایی مرتب میکند تا کلیدهای پیکربندی برای اسکن و مقایسه آسانتر باشند.
تراز روی `=` با استفاده از awk
awk -F '=' 'BEGIN{max=0} /^[[:space:]]*#/||NF<2{next} {gsub(/[[:space:]]+$/,"",$1); if(length($1)>max) max=length($1)} END{print max}' .env | xargs -I{} awk -F '=' -v w={} 'BEGIN{OFS="="} /^[[:space:]]*#/||NF<2{print; next} {k=$1; sub(/[[:space:]]+$/,"",k); v=substr($0,index($0,"=")+1); gsub(/^\s+|\s+$/,"",v); printf("% -" w "s = %s\n", k, v)}' .env > aligned.envاسکریپت awk دو مرحلهای که پهنترین کلید را اندازهگیری کرده و سپس تمام انتسابهای `KEY = VALUE` را با آن عرض تراز میکند.
ویندوز (PowerShell)
مرتبسازی و حذف کلیدهای تکراری (نگهداری آخرین مقدار)
(Get-Content .env) | Where-Object {$_ -notmatch '^\s*#' -and $_ -notmatch '^\s*$'} | Group-Object { $_.Split('=')[0].Trim() } -AsHashTable -AsString | ForEach-Object { $_.Value[-1] } | Set-Content cleaned.envخطوط را بر اساس کلید گروهبندی کرده و فقط آخرین وقوع را مینویسد، که نحوه حل تکراریها توسط اکثر لودرهای dotenv را منعکس میکند.
Node.js (کراسپلتفرم)
فرمتر مینیمال: تجزیه، مرتبسازی، تراز کردن، نوشتن
node -e "const fs=require('fs');const s=fs.readFileSync('.env','utf8');const lines=s.split(/\r?\n/);const kv=[];const others=[];for(const l of lines){if(!l||/^\s*#/.test(l)||!l.includes('=')){others.push(l);continue;}const i=l.indexOf('=');kv.push([l.slice(0,i).trim(),l.slice(i+1).trim()]);}kv.sort((a,b)=>a[0].localeCompare(b[0]));const w=Math.max(...kv.map(([k])=>k.length),0);const out=[...kv.map(([k,v])=>k.padEnd(w)+" = "+v),...others];fs.writeFileSync('formatted.env',out.join('\n'));"یک اسکریپت Node فشرده که میتوانید آن را برای استفاده محلی یا در CI به یک فرمتر اختصاصی تبدیل کنید.
موارد استفاده رایج فرمتر .env
آمادگی و بهداشت تولید
- شناسایی کلیدهای تکراری تصادفی قبل از استقرار سرویسهای حیاتی
- نرمالسازی فاصلههای سفید و خطوط جدید انتهای فایل برای جلوگیری از diffهای پرسر و صدا
- استانداردسازی ساختار قبل از تولید `.env.example` یا قالبهای secrets
# Production .env
NODE_ENV=production
API_URL=https://api.example.com
LOG_LEVEL=infoهمکاری تیمی و ورود به تیم
- کاهش نویز PR با اعمال طرحبندی استاندارد .env در تمام سرویسها
- کامیت کردن یک `.env.example` تمیز به جای secrets واقعی برای ایمنتر شدن ورود به تیم
- کمک به اعضای جدید تیم برای مشاهده سریع تمام کلیدهای پیکربندی مورد نیاز
# .env.example
API_URL=
API_KEY=
DEBUG=falseCI و دروازههای کیفیت
- افزودن بررسی برای اطمینان از عدم رسیدن کلیدهای تکراری به شاخههای `main` یا `master`
- شکست buildها در صورت نقض قوانین پایه فرمتبندی یا نامگذاری فایلهای `.env`
- تمرکز بررسیهای پیکربندی بر روی مقادیر و معناشناسی، نه جزئیات فاصلهگذاری
❓ Frequently Asked Questions
کلیدهای تکراری چگونه مدیریت میشوند؟
آیا نظرات و خطوط خالی حفظ میشوند؟
آیا ارجاعات ${VAR} گسترش داده میشوند؟
آیا چسباندن secrets واقعی ایمن است؟
APIهای خارجی. با این حال، ایمنترین روش اجتناب از چسباندن secrets تولید در هر ابزار مبتنی بر مرورگر است: فقط فایلهای پاکشده `.env.example` را کامیت کنید و برای مقادیر واقعی به یک مدیر secrets اختصاصی یا مخزن secret در CI تکیه کنید.در مورد مشکلات CRLF در مقابل LF و BOM چطور؟
آیا این نحوه خواندن فایل env توسط برنامه من را تغییر میدهد؟
Pro Tips
هرگز اسرار واقعی را به Git کامیت نکنید. یک `.env.example` با کلیدها و راهنمای امن کامیت کنید و مقادیر واقعی را از مخزن، ذخیرهسازی مخفی CI یا جایگزینهای محلی بارگذاری کنید.
کلیدها را بر اساس دامنه گروهبندی کنید (`APP_`, `DB_`, `NEXT_PUBLIC_` و غیره) و هر گروه را به طور یکنواخت مرتب نگه دارید تا بار شناختی خوانندگان جدید کاهش یابد.
یک سبک استاندارد .env را از طریق هوکهای پیشکامیت یا بررسیهای CI اعمال کنید تا هرگز مجبور نباشید در مورد فاصلهگذاری در بررسی کد بحث کنید.
مقادیر حاوی فاصله، `#`، `=` یا کاراکترهای رزرو شده شل را نقل قول کنید تا از مشکلات تجزیه ظریف در پیادهسازیهای مختلف dotenv جلوگیری کنید.
Additional Resources
Other Tools
- زیباکننده CSS
- زیباکننده HTML
- زیباکننده JavaScript
- زیباکننده PHP
- انتخابگر رنگ
- استخراجکننده اسپرایت
- دیکودر Base64
- انکودر Base64
- فرمتدهنده C#
- فرمتدهنده CSV
- Dockerfile Formatter
- فرمتدهنده Elm
- فرمتدهنده Go
- فرمتدهنده GraphQL
- فرمتدهنده HCL
- فرمتدهنده INI
- فرمتدهنده JSON
- فرمتدهنده LaTeX
- فرمتدهنده Markdown
- فرمتدهنده Objective-C
- Php Formatter
- فرمتدهنده Proto
- فرمتدهنده Python
- فرمتدهنده Ruby
- فرمتدهنده Rust
- فرمتدهنده Scala
- فرمتدهنده اسکریپت شل
- فرمتدهنده SQL
- قالببندی SVG
- قالببندی Swift
- قالببندی TOML
- Typescript Formatter
- قالببندی XML
- قالببندی YAML
- قالببندی Yarn
- کوچککننده CSS
- Html Minifier
- Javascript Minifier
- کوچککننده JSON
- کوچککننده XML
- نمایشگر هدرهای HTTP
- PDF به متن
- تستکننده Regex
- بررسیکننده رتبه SERP
- جستجوی Whois