باب 1: لائیو ریلوڈنگ کا تعارف

لائیو ریلوڈنگ کیا ہے؟

لائیو ریلوڈنگ ایک خصوصیت ہے جو آپ کے ترتیبی ماحول کو آپ کے کوڈ میں تبدیلیوں کا نگرانہ کرنے اور آپ کے ایپلیکیشن کو خود بخود ریلوڈ کرنے کی اجازت دیتی ہے۔ جب آپ ایک فائل محفوظ کرتے ہیں، تو لائیو ریلوڈنگ ٹول تبدیلی کا پتہ لگاتا ہے، ایپلیکیشن کو دوبارہ تشکیل دیتا ہے، اور اسے دوبارہ چلاتا ہے۔ یہ آپ کو مینوئل فرآن کے عمل سے بچاتا ہے جو ہر تبدیلی کے بعد سرور کو منسوخ کرنا، ایپلیکیشن کو دوبارہ تشکیل دینا، اور اسے دوبارہ چلانا ہوتا ہے۔

گو ترقی کے لیے لائیو ریلوڈنگ کے فوائد

لائیو ریلوڈنگ ترقی کے عمل کو بہتر بنانے کی قابلیت رکھتی ہے۔ گو ڈویلپرز کے لیے، جنہیں کوڈ کو کمپائل کرکے چلانے کی عادت ہوتی ہے، لائیو ریلوڈنگ کا مطلب ہے کہ ان کا کام کاری کو عملی بناتا ہے اور انہیں فوری واپسی ملتی ہے۔ اس کے فوائد شامل ہیں:

  1. پیداوار میں اضافہ: ڈویلپرز بغیر رکاوٹ آزادی سے کام کرسکتے ہیں، کیونکہ ان کو دستیاب فرآن کے عمل کرنے کی ضرورت نہیں ہوتی۔
  2. وقت کی بچت: لائیو ریلوڈنگ کا استعمال کرنے سے کوڈ میں تبدیلیاں دیکھنے کا وقت کم ہوتا ہے۔
  3. غلطیوں کی تلاش: فوراً تشکیل دینے اور دوبارہ چلانے سے ڈویلپرز غلطیوں کو تلاش کرکے درست کرنے میں تیزی سے کام کرسکتے ہیں۔
  4. سیم پر لائن کام کرنا: ترتیبی عمل کو بہتر اور مؤثر بناتا ہوا ترتیب دیتا ہے۔

باب 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 ابھی بھی فائل کی تبدیلی کو دیکھے گا اور بنانے کے عمل کو ٹرگر کرے گا، لیکن یہ کوشش نہیں کرے گا کہ نتیجہ سے آنے والی بائنری فائل کو اجراء کرے۔