باب 1: لائیو ریلوڈنگ کا تعارف
لائیو ریلوڈنگ کیا ہے؟
لائیو ریلوڈنگ ایک خصوصیت ہے جو آپ کے ترتیبی ماحول کو آپ کے کوڈ میں تبدیلیوں کا نگرانہ کرنے اور آپ کے ایپلیکیشن کو خود بخود ریلوڈ کرنے کی اجازت دیتی ہے۔ جب آپ ایک فائل محفوظ کرتے ہیں، تو لائیو ریلوڈنگ ٹول تبدیلی کا پتہ لگاتا ہے، ایپلیکیشن کو دوبارہ تشکیل دیتا ہے، اور اسے دوبارہ چلاتا ہے۔ یہ آپ کو مینوئل فرآن کے عمل سے بچاتا ہے جو ہر تبدیلی کے بعد سرور کو منسوخ کرنا، ایپلیکیشن کو دوبارہ تشکیل دینا، اور اسے دوبارہ چلانا ہوتا ہے۔
گو ترقی کے لیے لائیو ریلوڈنگ کے فوائد
لائیو ریلوڈنگ ترقی کے عمل کو بہتر بنانے کی قابلیت رکھتی ہے۔ گو ڈویلپرز کے لیے، جنہیں کوڈ کو کمپائل کرکے چلانے کی عادت ہوتی ہے، لائیو ریلوڈنگ کا مطلب ہے کہ ان کا کام کاری کو عملی بناتا ہے اور انہیں فوری واپسی ملتی ہے۔ اس کے فوائد شامل ہیں:
- پیداوار میں اضافہ: ڈویلپرز بغیر رکاوٹ آزادی سے کام کرسکتے ہیں، کیونکہ ان کو دستیاب فرآن کے عمل کرنے کی ضرورت نہیں ہوتی۔
- وقت کی بچت: لائیو ریلوڈنگ کا استعمال کرنے سے کوڈ میں تبدیلیاں دیکھنے کا وقت کم ہوتا ہے۔
- غلطیوں کی تلاش: فوراً تشکیل دینے اور دوبارہ چلانے سے ڈویلپرز غلطیوں کو تلاش کرکے درست کرنے میں تیزی سے کام کرسکتے ہیں۔
- سیم پر لائن کام کرنا: ترتیبی عمل کو بہتر اور مؤثر بناتا ہوا ترتیب دیتا ہے۔
باب 2: ایئر کیا ہے؟
ایئر ایک کمانڈ لائن یوٹیلٹی ہے جو گو ایپلیکیشنز کو لائیو ریلوڈ کرنے کی صلاحیت فراہم کرنے کے لئے تصمیم کری گئی ہے۔ یہ آپ کے سورس کوڈ میں تبدیلیوں کا مشاہدہ کرتا ہے اور آپ کے گو ایپلیکیشن کو خود بخود دوبارہ تشکیل دیتا ہے اور دوبارہ چلاتا ہے۔ یہ مطلب ہے کہ آپ ترقی کی خصوصیات پر زیادہ توجہ دیں گے اور تکراری تسکوں پر کم توجہ دیں گے۔
خصوصیات
ایئر میں مختلف خصوصیات فراہم کی جاتی ہیں جو ایک ماڈرن گو ترقی کے ماحول کے لئے مناسب ہیں:
- آٹومیٹک ریبلڈز: فائل میں تبدیلیوں کا پتہ لگاتا ہے اور ریبلڈز کا آغاز ہوتا ہے۔
- شخصیت کردار ڈاکیومنٹ: آپ کو اپنے پروجیکٹ کی ضروریات کے لئے بلڈ کمانڈز کو شخصیت دینے کی اجازت دیتا ہے۔
- ڈائریکٹری کو استثناء کرنا: آپ کو مشاہدہ سے مختار ڈائریکٹریز کی سپیسفائی کرنے کی اجازت دیتا ہے۔
- نئی ڈائریکٹریوں کی حمایت: ایئر کو شروع ہونے کے بعد نئی ڈائریکٹریوں کا مشاہدہ کرنے کی اجازت دیتا ہے۔
- رنگین اور قابل پڑھائی لاگز: آؤٹپٹ لاگز کی قابل پڑھائی کو رنگین فراہم کر کے انہیں بہتر بناتا ہے۔
- سی آئی ای لاڈآؤنٹس: ترتیباتی فیلڈز کو تیزی سے قابل مستقل کمانڈ لائن کے ذریعے ترتیب دی جا سکتی ہیں۔
آئر کے ساتھ دستیاب خصوصیات اور فعالیتوں کی مکمل فہرست کے لئے ڈویلپر کی فراہم کردہ سیاق و سباق سے رابطہ کریں۔
باب 3: ایئر
کا تنصیب
3.1 go install
کے ذریعے انسٹالیشن
گو ٹول چین کی ورژن 1.18 یا اس سے بلند استعمال کرکے ایئر کو انسٹال کرنے کے لئے:
go install github.com/cosmtrek/air@latest
یہ عمل آپ کی GOPATH/bin
میں ایئر
کو دستیاب کرادے گا۔
3.2 install.sh
اسکرپٹ کی استعمال
ایک اور طریقہ اس حوالے سے فراہم کردہ انسٹالیشن اسکرپٹ ہے:
curl -sSfL https://raw.githubusercontent.com/cosmtrek/air/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
انسٹالیشن کے بعد، اس کی تصدیق کے لئے یہ کمانڈ چلائیں:
air -v
3.3 خصوصی انسٹالیشن (ڈاکر/پاڈمین اور کسٹم پاتھ)
انسٹالیشن کے لئے ڈاکر یا پاڈمین کا استعمال کرنے والے کے لئے، ایک مختصر راہ ہے:
docker run -it --rm \
-w "/path/to/project" \
-v $(pwd):/path/to/project \
-p port:port \
cosmtrek/air
/path/to/project
کو اپنے پروجیکٹ کی راہ سے، اور port:port
کو مطمئن پورٹ میپنگ کی زمرہ سے بدلیں۔
دوسری صورت میں، ایک خاص پاتھ انسٹالیشن کے لئے:
curl -sSfL https://goblin.run/github.com/cosmtrek/air | PREFIX=/custom/path sh
باب 4: اپنے گو پروجیکٹ کے لئے ایئر
کنفیگر کرنا
4.1 .air.toml
کنفیگریشن کو سمجھنا
.air.toml
ایئر کا ترتیبی فائل ہے۔ یہ آپ کو بنیادی سائٹنگ، ڈائریکٹری مانیٹرنگ، اور لاگ آؤٹ کے متعلق سیٹنگز کو مخصوص کرنے کی اجازت دیتا ہے۔ یہاں کچھ اہم سیکشنز کا خلاصہ دیا گیا ہے:
-
root
: ایئر کے لئے کام کرنے کی ڈائریکٹری مخصوص کرتا ہے۔ -
build
: بلڈ کے متعلق سیٹنگز جیسے کہ بلڈ سے پہلے/بعد میں چلنے والے کمانڈز، اور مین بلڈ کمانڈ شامل ہوتے ہیں۔ -
tmp_dir
: وہ ڈائریکٹری جہاں عارضی بلڈ فائلیں ذخیرہ ہوتی ہیں۔ -
log
: لاگ فائل سیٹنگز کو تشکیل دیتا ہے۔ -
color
: لاگ آؤٹ کے ہر حصے کی رنگین پستی کو عدل کرتا ہے۔
4.2 تشکیل اور ترتیب فائل ترتیب
.air.toml
کی ڈیفالٹ تشکیل فائل بنانے کے لئے، مندرجہ ذیل کمانڈ استعمال کریں:
air init
اس سے آپ کی موجودہ ڈائریکٹری میں ڈیفالٹ ترتیب کے ساتھ .air.toml
فائل بنائیں گے۔ آپ اسے اپنے پراجیکٹ کی ضروریات کے مطابق ترتیب دینے کے لئے ترتیب دے سکتے ہیں۔ مثال کے طور پر، آپ کتابت کی مواد میں مدد کے لئے air_example.toml
دیکھ سکتے ہیں۔
4.3 CLI آرگومنٹس سے کنفیگیشن کو اووررائٹ کرنا
تیز تجربات یا چھوٹے تبدیلیوں کے لئے، آپ محفوظ .air.toml
کی کنفیگیشن کو CLI آرگومنٹس کے ذریعے اووررائٹ کرسکتے ہیں۔ مثلاً:
air --build.cmd "go build -o myapp" --build.bin "./myapp"
یہ مروج روپ ہے جو آپ کو کنفیگیشن فائل تبدیل کرنے کے بغیر Air کی رویے کو آسانی سے کسی بھی شکل میں ترتیب دینے کی اجازت دیتا ہے۔
باب 5: اپنے ترتیب کے ماحول میں air
کو چلانا
6.1 اپنے پراجیکٹ میں air
شروع کرنا
اپنے پروجیکٹ میں air
کے ساتھ شروع ہونے کے لئے، اپنی ٹرمینل میں اپنے پراجیکٹ کی روٹ ڈائریکٹری تک جایں اور air
کمانڈ کو انجام دیں۔ اگر .air.toml
کنفیگیشن فائل موجود ہو تو، air
خود بخود اسے استعمال کرے گا۔ ورنہ، یہ ڈیفالٹ ترتیب استعمال کرے گا۔
cd /path/to/your_project
air
نصیحت: اگر آپ کو air
قائم کرنے سے متعلق اجازت کے مسائل کا سامنا ہو، تو یہ یقینی بنائیں کہ اس کے ضروری اجازت (chmod +x $(go env GOPATH)/bin/air
) ہیں۔
6.2 air
کے ساتھ ترتیب اور چلانے کے کمانڈ کی اپنی مرضی کرنا
آپ .air.toml
کنفیگیشن فائل کو ترتیب دیکر air
کے ساتھ استعمال ہونے والے ترتیب اور چلانے کے کمانڈز کو اپنی مرضی کرسکتے ہیں، خصوصی طور پر [build]
سیکشن کے تحت۔ مثال کے طور پر، تبدیل کرنے کے لئے بنانے اور ایک مختلف بائنری فائل کا ٹھوس کرنے کے لئے:
[build]
cmd = "go build -o ./tmp/my-custom-binary ."
bin = "tmp/my-custom-binary"
زیادہ پیچیدہ ترتیب کی ضروریات کے لئے، کنفیگیشن فائل میں pre_cmd
اور post_cmd
کے ارے آپ کو ترتیب کرنے کی اجازت دیتے ہیں۔
نصیحت: ایک مکمل مثال air ترتیب
6.3 ڈائریکٹریز کو خارج کرنا اور تبدیلیوں کا نگرانی کرنا
air
کو دیے گئے دائریکٹریز سے خارج کرنے اور ترتیب کرنے کی اجازت دیتا ہے، جو ایسی دائریکٹریز کے لئے مددگار ہو سکتا ہے جو اشیاء یا معاونت ہیں جو ایک نئے ترتیب کو ٹرگر نہیں کرنا چاہتے۔
اس کو ترتیب کرنے کے لیے، .air.toml
میں exclude_dir
فیلڈ کو اپ ڈیٹ کریں:
[build]
exclude_dir = ["assets", "tmp", "vendor", "node_modules"]
آپ یہ بھی کر سکتے ہیں کہ include_dir
کا استعمال کریں، یا include_ext
کے ساتھ خاص فائل کی ترتیب کی نگرانی کریں۔
باب 6: انتہائی استعمال
6.1 air
کو ڈاکر کنٹینر کے ساتھ ترتیب دینا
docker
کنٹینر کے اندر air
کا استعمال، خاص طور پر ٹیمز کے ساتھ کام کرتے ہوئے آپ کے ترتیب کو سہولت فراہم کرسکتا ہے۔ اس کو آپ کی ٹیم کے ڈوکر ماحول میں شامل کرنے کے لئے، اپنے Dockerfile
کو ترتیب دیں اور air
کو انسٹال کریں اور اپنی .air.toml
کو کنٹینر میں کاپی کریں:
FROM golang:1.18-alpine AS builder
RUN go install github.com/cosmtrek/air@latest
WORKDIR /app
COPY go.mod .
COPY go.sum .
RUN go mod download
COPY . .
CMD ["air", "-c", ".air.toml"]
6.3 docker-compose
ماحول میں air
کا استعمال کرنا
docker-compose
کے ذریعے منظم کردہ ایک خدمت میں air
کو شامل کرنے کے لئے، اپنے docker-compose.yaml
فائل میں ایک خدمت تعریف کریں:
version: '3.8'
services:
app:
build: .
ports:
- "808:808"
volumes:
- .:/app
command: ["air", "-c", ".air.toml"]
یہ یقینی کر لیں کہ volumes
راہنمائی صحیح طریقے سے آپ کی پروجیکٹ ڈائریکٹری کو کنٹینر میں کام کرنے والی ڈائریکٹری سے میپ کر رہی ہو تاکہ air
فائل تبدیلیاں دیکھ سکے۔
باب 7: عام مسائل کا حل اور عام سوالات
7.1 command not found: air
درست کرنا
اگر آپ کو command not found: air
کی غلطی کا سامنا ہو، تو عام طور پر یہ یہ معنی ہوتا ہے کہ air
بائینری آپ کے سسٹم کے PATH
میں موجود نہیں ہے۔ اس کو حل کرنے کے لئے، اپنے PATH
ماحولی متغیر میں گو بائینری پتہ شامل کریں:
export PATH=$PATH:$(go env GOPATH)/bin
7.2 WSL ماحول میں مسائل
ونڈوز سبسسٹم فار لنکس (WSL) ماحول میں یقینی بنائیں کہ آپ اپنے .air.toml
میں خصوصی حروف کو محفوظ کر رہے ہیں۔ مثال کے طور پر، فائل راستوں میں بیکلاش کو محفوظ کرنے کے لئے \\
کا استعمال کریں۔
7.3 بغیر بائنری چلائے ہوئے ہوٹ ترتیب کے لئے مشورے
اگر آپ چاہتے ہیں کہ air
آپ کے Go ایپلیکیشن کو بنائے بغیر، تو اپنے .air.toml
کے [build]
حصے میں cmd
کو کوئی بھی عمل نہ کرنے والا کمانڈ (مثلا ً /bin/true
یونکس بیس انتظامات پر) پر سیٹ کریں:
[build]
cmd = "/bin/true"
اس کارروائی سے air
ابھی بھی فائل کی تبدیلی کو دیکھے گا اور بنانے کے عمل کو ٹرگر کرے گا، لیکن یہ کوشش نہیں کرے گا کہ نتیجہ سے آنے والی بائنری فائل کو اجراء کرے۔