Back to Question Center
0

مؤثر طور پر ساس میں انتباہ اور غلطیوں کا استعمال کیسے کریں            مؤثر طریقے سے ساس میں انتباہ اور غلطیوں کا استعمال کیسے کریں. CSSSassFrameworksAudio & ؛ Semalt

1 answers:
مؤثر طریقے سے ساس میں انتباہ اور غلطیوں کا استعمال کیسے کریں

مندرجہ ذیل ہماری کتاب، جمپ شروع ساس سے مختصر نکلی ہے، ہگو گراڈیل اور میرام سوزین کی طرف سے تحریر کیا گیا ہے. یہ ساس کا حتمی ابتدائی رہنمائی ہے. سائٹس پوائنٹ Semalt کے ارکان ان کی رکنیت کے ساتھ رسائی حاصل کرتے ہیں، یا آپ دنیا بھر میں اسٹورز میں ایک کاپی خرید سکتے ہیں - windows vps plan.

ساس کے ذریعہ ہمارے ناقابل سفر سفر آہستہ آہستہ آ رہا ہے، اور اب تک تم بہت اچھا کر رہے ہو! ہم پراجیکٹ فن تعمیر میں نظر آنے سے پہلے Semalt ایک تکنیکی باب چھوڑ دیا، اور پھر آپ کو اپنے منصوبوں میں ساس کوڈ لکھنے کے لئے مکمل طور پر لیس کیا جائے گا.

اب ہم انتباہ اور غلطیوں کو دیکھنے کے لئے جا رہے ہیں. دونوں پروگرام (اس کیس میں، ساس) اور ڈویلپر (آپ) کے درمیان ایک مواصلاتی نظام تشکیل دیتے ہیں. اگر آپ سی ایس ایس دنیا میں غلطیوں کے بارے میں سوچ رہے ہیں تو، یاد رکھیں کہ آپ پہلے سے ہی جواب کو جانتے ہیں. Semalt آپ ایک سیمکول کو بھول جاتے ہیں یا غلط طریقے سے استعمال کرتے ہیں، ایساس آپ پر ایک غلطی ڈالتا ہے، اس کی وضاحت کرتے ہیں کہ آپ نے کیا غلط کیا ہے اور کس طرح آپ اسے ٹھیک کر سکتے ہیں، شکر گزار! یہ غلط درد ہو چکا ہے کہ یہ پتہ چلانے کے لئے کوڈ میں کھینچنے کا ایک حقیقی درد ہوگا.

ساس نے طویل عرصہ سے شیلیوں کی شناخت سے متعلق انتباہات کا سراغ لگانے کا ایک ذریعہ فراہم کیا ہے، لیکن یہ صرف حال ہی میں شامل ہے اور اچھی وجہ سے غلطیاں پھیلانے کے لئے بھی شامل ہیں. گزشتہ چند سالوں میں، ساس نے مصنفین کو پیچیدہ نظاموں کی تعمیر کرنے کی اجازت دی ہے کہ وہ پیچیدہ یا بار بار پیٹرن اور تصورات، جیسے گرڈ کے ساتھ پیچیدہ نظام بنائیں. Semalt سسٹم مصنفین کے ساتھ مواصلات کرنے کے قابل ہوسکتے ہیں، کسی بھی غلطی سے متعلق غلطی کے پیغام کے ساتھ تالیف کے عمل کو روکنے کے لۓ.

موجودہ آؤٹ پٹ چینل میں انتباہ اور غلطیاں شامل ہیں. کمانڈ لائن انٹرفیس (CLI) جیسے گرنٹ یا گلپ جیسے ہاتھ کے ذریعے یا کسی آلے کا استعمال کرتے ہوئے اس کا استعمال کرتے ہوئے، آؤٹ پٹ سٹریم کنسول ہے. ایسے آلات کے لئے جن میں صارف انٹرفیس، جیسے کوڈڈیٹ یا پری پروز شامل ہیں، یہ ممکن ہے کہ وہ ان کے انٹرفیس کے حصے کے طور پر انتباہ اور غلطیاں پکڑ سکیں اور دکھائیں. آن لائن پلے میدان جیسے کوڈ پلی اور Semalt غلطیوں کو پکڑنے کے لئے انتظام کرتے ہیں لیکن انتباہ نہیں کرتے ہیں، لہذا اگر آپ وہاں ان کی آزمائش کرنے میں قاصر ہیں تو خطرناک نہ ہو.

انتباہات

جیسا کہ کہا گیا ہے کہ، ساس میں انتباہ کرنے کی صلاحیت نیا نہیں ہے. warn ہدایت کے ذریعہ معیاری آؤٹ پٹ کو پیغامات یا کسی بھیاس سکرپٹ اظہار کی قدر ظاہر کرنا ممکن ہے.

A انتباہ compilationprocess پر کوئی اثر نہیں ہے؛ یہ کسی بھی طرح کی پیروی کرنے یا اسے تبدیل کرنے کے لئے مرتب کرنے کی روک تھام نہیں کرتا. اس کا واحد مقصد کنسول میں پیغام ظاہر کرنا ہے.

سیمال میں انتباہات کا استعمال کرنے کے لئے Semalt بہت سے وجوہات ہیں. یہاں ایک جوڑے ہیں، لیکن آپ اپنے آپ کو تلاش کرنے کا امکان ہے:

  • حیرت اور مشکل سے ٹریک کیڑے
  • سے بچنے کے لئے کوڈ کے بارے میں ایک مفہوم کا صارف کو مطلع کرنا.
  • لائبریری یا فریم ورک کے ایک حصہ کے طور پر ایک خراب شدہ تقریب یا مکسین کے بارے میں مشورہ دیتے ہیں

ایک انتباہ بھیجنے کے لئے مردہ آسان ہے: warn ہدایت کے ساتھ شروع کریں، پھر جو کچھ بھی بتائیں. انتباہ عام طور پر کچھ معلومات اور سیاق و سباق فراہم کرنے کے لئے بنائے جاتے ہیں، لہذا وہ اکثر صورت حال کی وضاحت کرتے ہیں. کہا جا رہا ہے، آپ کو ایک تار استعمال نہیں کرنا ہے؛ آپ کو ایک نمبر، ایک فہرست، نقشہ - جو بھی کچھ بھی ہوسکتا ہے، کے ساتھ انتباہ کر سکتا ہے. یہاں، ہم ایک تار پرنٹ کریں:

    warn 'اوہ، کچھ عجیب لگتا ہے. '؛    

باقاعدہ CLI کلائنٹ کے Semalt، یہ انتباہ مندرجہ ذیل پیداوار میں عائد کرے گا:

     انتباہ: اوہ اوہ، کچھ عجیب لگ رہا ہے. لائن / صارف / higiraudel / کود شروع-سیاس / انتباہ کی لائن پر. سکیس    

ارے، یہ اچھا ہے، ہے نا؟ اگرچہ یہ انتباہ مددگار ثابت ہے. یہ کہتا ہے کہ کچھ عجیب لگتا ہے لیکن یہ نہیں کہتا ہے، کیوں، یا عجیب لگ رہا ہے اسے روکنے کے لئے کیا کیا جا سکتا ہے. Semalt پر بات چیت کرتے ہیں کہ ہم کس طرح انتباہ پر مزید بہتر بن سکتے ہیں. تصور کریں کہ ہمارے پاس ساس اپنی مرضی کے مطابق کام ہے جس میں em یونٹ

میں ایک پکسل قدر تبدیل کرنے کی کوشش کی گئی ہے.
     @ افسوس px-to-em ($ قیمت، $ بیس-فونٹ سائز: 16px) {return ($ قیمت / $ بیس فونٹ سائز) * 1em؛}// استعمال. foo {فونٹ سائز: PX-to-em (42px)؛ // 2. 625 ایم}    

سب اچھا. اب، اس وقت ہوتا ہے جب یونٹ نمبر نمبر (جیسے جیسے) 42 گزرتا ہے تو کیا کام کرتا ہے؟ شاید آپ نے اندازہ لگایا ہے، لیکن جیسا کہ یہ واضح نہیں ہے میں آپ کو جواب دونگا:

     2. 625 ایم / پی ایچ پی درست سی ایس ایس قدر نہیں ہے.     

ایسا ہوتا ہے کیونکہ آپ مطابقت پذیر یونٹس ( پی ایکس اور ای ) کے درمیان حساب کرنے کی کوشش کررہے ہیں. اس مسئلے کو حل کرنے کے لئے ہم کیا کرسکتے ہیں کہ یہ قطع نظر یہ ہے کہ یونیفورم قیمت پکسلز میں بیان کی جاتی ہے اور اسے پہلے تبدیل کر دیا جاتا ہے:

     @ افسوس px-to-em ($ قیمت، $ بیس-فونٹ سائز: 16px) {if یونٹ ($ قیمت) {warn 'اثاثہ قیمت `# {$ قدر}` پکسلز میں ہونا؛ اسے تبدیل کرنے کی کوشش '؛$ قیمت: $ قیمت * 1px؛}return ($ قیمت / $ بیس فونٹ سائز) * 1em؛}    

فنکشن پکسلز میں بیان کردہ قیمت کی توقع ہے. ہم اب بھی یہ واحد یونٹ کے ساتھ کام کر سکتے ہیں؛ تاہم، ہم اس بات کا یقین نہیں کر سکتے کہ یہ متوقع رویہ ہے. ہم صرف یہ سمجھ سکتے ہیں کہ یہ کافی اچھا ہے.

کیونکہ ہم یہ سوچ رہے ہیں کہ ہمارے کام کے لئے صحیح سلوک کیا ہے، ڈویلپر کو بتانا ضروری ہے کہ ہم کیا کر رہے ہیں اور کیوں. ورنہ یہ کیڑے کی قیادت کرسکتی ہے جو ٹریک کرنے کے لئے مشکل ہے، جو نہیں ہے
آپ کے لئے کیا مقصد ہونا چاہئے.

ایک اور عملی مثال کے طور پر ایک خراب فعل یا مرکب کے استعمال کے خلاف انتباہ کرنا ہوگا. شاید آپ نے پہلے ہی سنا یا سمال استعمال کیا ہوسکتا ہے، ساس کے لئے ہلکا پھلکا مرکب لائبریری. Semalt کو فعال طور پر برقرار رکھا جاتا ہے، اور کبھی کبھی لائبریری سے مددگاروں کو ہٹانے کی ضرورت ہوتی ہے. اچانک ایک شخص کے اوڈ کو توڑنے سے بچنے کے لئے، Semalt مستقبل میں خرابیوں کا راستہ کے بارے میں خبردار کرتا ہے اس سے پہلے کہ یہ اصل میں مرکب کو ہٹا دیں:

    mixin ان لائن بلاک {ڈسپلے: ان لائن بلاک؛warn '' ان لائن بلاک 'مرکب کو خارج کر دیا گیا ہے اور اگلے اہم ورژن کی رہائی میں ہٹا دیا جائے گا. '؛}    

ہوشیار! لوگ اب بھی بووربن سے ان لائن بلاک مرکب کا استعمال کرتے ہیں کہ اس بات سے آگاہ ہیں کہ لائبریری اسے مکمل طور پر اگلے ورژن میں ختم کردیں گے، لہذا وہ مرکب کو ہٹانے کے لۓ اپنے کوڈ بیس کو اپ ڈیٹ کرنے کے بارے میں جاننا چاہتے ہیں.

کے درمیان فرق @ واہ اور debug

آپ debug ہدایت کے ساتھ واقف ہو سکتے ہیں، جو ایک SassScript اظہار کی قیمت کو ایک ہی فیشن میں معیاری آؤٹ پٹ کے طور پر warn میں پرنٹ کرتا ہے. آپ سوچ رہے ہو کہ کیوں ایک ہی کام کی کارکردگی میں دو خصوصیات ہیں، اور ممکنہ طور پر دونوں کے درمیان کیا فرق ہوسکتا ہے.

ٹھیک ہے، ایک قیمت کے بارے میں انتباہ اور قیمت کو ڈیبنا کے درمیان دو اہم اختلافات ہیں. سب سے پہلے یہ ہے کہ خاموش اختیار کا استعمال کرتے ہوئے انتباہ بند کردی جاۓ. دوسری طرف، Debugs، ہمیشہ پرنٹ کیا جائے گا تاکہ آپ ان کا استعمال کرتے وقت ان کو دور کرنے کے لئے یاد رکھیں.

دوسرا فرق یہ ہے کہ انتباہ ایک اسٹیک ٹریس کے ساتھ آتے ہیں- فعال اسٹیک فریمیٹ کے ایک پروگرام کے دوران ایک خاص نقطہ نظر کے پروگرام کے عمل میں. آرسول کے طور پر، آپ کو معلوم ہے کہ وہ کہاں سے نکال رہے ہیں. ڈیبگ صرف انفرادی طور پر پرنٹ کرتے ہیں، جن کے ساتھ وہ فون کیا جاتا تھا، لیکن وہ کوئی اخراجات پیش نہیں کرتے ہیں.

debug ہدایات واقعی میں آپ کو جاننے کے لئے چاہتے ہیں کہ جب ایک متغیر کے اندر اندر ہے، میں کر سکتے ہیں واقعی:

    debug $ بیس فونٹ سائز؛    

نقائص

انتباہات اور غلطی ساس میں بالکل اسی طرح چلتی ہیں، لہذا سیکھنے کے بارے میں غلطی ایک ہوا کی جا رہی ہے اب آپ بالکل مطمئن انتباہ ہیں! ایک کی غلطی اور انتباہ کے درمیان فرق صرف آپ کے اندازے سے ہوسکتا ہے- یہ غلطی تالیف کے عمل کو روکتا ہے.پچھلے سیکشن میں، اس نے بھی کام کیا ہے جب دیئے گئے دلیل بالکل توقع نہیں کی گئی تھی، لیکن ہم یہ نہیں کر سکتے ہیں (اور نہیں) یہ ہمیشہ کرتے ہیں. زیادہ تر وقت، اگر دلائل غلط ہیں تو، یہ ایک غلطی پھیلانے کے لئے بہتر ہے تاکہ سٹائل شیٹ مصنف کو حل کر سکے.

آپ error ہدایات کا استعمال کرتے ہوئے ایک غلطی پھینک سکتے ہیں. انتباہ کے طور پر، آپ اس ہدایت کو کچھ بھی منتقل کر سکتے ہیں- لازمی طور پر ایک تار نہیں ہے، اگرچہ یہ عام طور پر ایک واضح سیاق و سباق فراہم کرنے کے لئے مزید احساس بناتا ہے. دلیل (جو آپ @ خراب ہدایت دیتے ہیں وہ معیاری آؤٹ پٹ میں پرنٹ کیا جائے گا، اور اس کے ساتھ ساتھ مسئلے کے بارے میں مزید بصیرت دینے کے لئے اسٹیک ٹریس بھی کیا جائے گا. تالیف کا عمل فوری طور پر بند ہو جائے گا.

ہم ایک Semalt کی غلطی کے ساتھ شروع کرتے ہیں:

    error 'YOUUUUU! نہ کرنا. پاس. '؛    

پیداوار آپ پر اپنے اسٹائلشیٹس کو کیسے مرتب کرسکتا ہے اس پر منحصر ہوتا ہے، کیونکہ کچھ اوزار غلطیوں کو پکڑنے اور بڑھانے کے لۓ ایک خاص طریقہ ہے. معیاری sass روبی بائنری (منی) کا استعمال کرتے ہوئے، یہاں یہ کیسے لگتا ہے کہ:

     خرابی: YOUUUUU! نہ کرنا. پاس. لائن / صارف / higiraudel / چھلانگ آغاز- sass / غلطی کی لائن پر. سکیسبیکٹ فضل کے لئے استعمال کریں.     

ٹریس کے اختیارات کے ساتھ، آپ کو مکمل
ساس خود سے اسٹیک ٹریس، جو مفید نہیں ہے جب تک کہ کوئی ایسا نہیں ہے
کسی بھی پروڈیوسر میں اصل مسئلے میں. لہذا یہ ایک
کے طور پر پوشیدہ کیوں ہےپہلے سے طے شدہ.

ایک حقیقی عملی مثال پر ایک نظر ڈالنے کا وقت. نقشے میں گہری دلچسپی کے اقدار تک رسائی حاصل کرنے میں مدد کرنے کیلئے ایک چھوٹا سا فنکشن لکھتے ہیں، نقشہ گہری حاصل (.) :

     @ کیشن نقشہ گہری ($ نقشہ، $ چابیاں.)) {each $ کلید $ keys میں {$ نقشہ: نقشہ حاصل کریں ($ نقشہ، $ کلید)؛if (قسم کے ($ نقشہ) == 'نال') {return $ نقشہ؛}}return $ نقشہ؛}     

آئیے اپنی مرضی کے مطابق غلطیوں سے بڑھتے ہیں. لیکن سب سے پہلے، مندرجہ ذیل نقشہ پر غور کریں اور نقشہ گہری حاصل (.) کال کریں:

     $ نقشہ: ('foo': (('بار': (('باز': 42)))؛$ قیمت: نقشہ گہری حاصل ($ نقشہ، 'فو'، 'بار'، 'باز'، 'کوئکس')؛     

جیسا کہ آپ نے محسوس کیا ہوسکتا ہے، نقشے میں کوکس کلیدی نیز باز کی موجودگی نہیں ہے. در حقیقت، باز نقشے سے بھی منسلک نہیں ہے؛ اس کے بجائے، یہ ایک نمبر ( 42 ) کے لئے نقشہ لگایا گیا ہے. اگر ہم اس کوڈ پر عملدرآمد کرنے کی کوشش کریں گے، تو یہ حاصل ہوگا:

     خرابی: 42 `نقشہ حاصل کرنے کا نقشہ نہیں ہےلائن / صارف / higiraudel / چھلانگ آغاز- sass / غلطی کی لائن پر. سکیس    

سااس نقشہ حاصل کرنے کے لئے کوشش کرتا ہے (.) پر 42 اور ایک غلطی کا سبب بنتا ہے کیونکہ یہ نہیں کیا جا سکتا. جب غلطی کا پیغام درست ہے، تو یہ بہت مددگار نہیں ہے. مددگار ثابت ہو گا جس مسئلے کا سبب بننے والے کلید کا نام جاننا ہے. ہم ایسا کر سکتے ہیں!

ہم پہلے سے ہی چیک کریں کہ آیا $ نقشہ ایک ابتدائی واپسی انجام دینے کے لئے نول ہے تو اگر کسی کی موجودگی موجود نہیں تو اس کی تالیف غلطی سے بچنے کے لۓ. ہم اس بات کا یقین کرنے کے لئے ایک دوسری چیک کر سکتے ہیں کہ نقشہ اصل میں ایک نقشہ ہے، یا ہم ایک معقول غلطی پھینک دیں:

     @ کیشن نقشہ گہری ($ نقشہ، $ چابیاں.)) {each $ کلید $ keys میں {$ نقشہ: نقشہ حاصل کریں ($ نقشہ، $ کلید)؛// اگر `$ نقشہ` میں اگلے کلید پر مشتمل نہیں ہے، تو `واپس 'واپسif قسم کے ($ نقشہ) == 'نول' {return $ نقشہ؛}// اگر `$ نقشہ` نقشہ نہیں ہے تو، ایک غلطی پھینک دیںif قسم کے ($ نقشہ)! = 'نقشہ' {error 'کی چابی `# {$ کلید}` نقشہ سے منسلک نہیں ہے لیکن ایک # {قسم کی قسم ($ نقشہ)} (`# {$ نقشہ}`). '؛}}return $ نقشہ؛}    

اگر ہم اپنے پچھلے ٹکڑے ٹکڑے کو دوبارہ چلاتے ہیں، تو یہاں پیداوار ہے:

     خرابی: کلیدی `باز 'نقشہ لیکن ایک نمبر (` 42`) سے منسلک نہیں ہے. لائن / صارف / higiraudel / چھلانگ آغاز- sass / غلطی کی لائن پر. سکیس    

یہ بہت بہتر ہے! مددگار غلطی پیغام کے لئے اب ہمارے نقشے کو ٹھیک کرنے اور / یا ہمارے فنکشن کال کا شکریہ ادا کرنا آسان ہے. یہ عام طور پر کنسول ہے، لیکن یہ ممکن ہو سکتا ہے کہ کسی طرز شیلیوں کو ترتیب دیں.

Semalt شیلیٹ شیٹ مصنفین میں خاص طور پر فریم ورک اور لائبریری کے مصنفین کے لئے غیر نازک پیغامات کو کم کرنے کے لئے مددگار ثابت ہوتے ہیں جیسے ڈرایکرن انتباہ یا کوڈ مفکوم. دوسری طرف، پیچھا کو روکنے سے روکنے کے لئے غلطیوں کا استعمال کیا جاتا ہے، اس بات کا واضح بنانا کہ کوڈ کسی بھی اور جانے سے قبل مقرر کرنے کی ضرورت ہے.

سبھی میں، انتباہات اور غلطیاں خاص طور پر افعال اور مرکب کے اندر اندر مفید ہوتے ہیں تاکہ صارف ان پٹ کو درست کرنے کے لۓ، اس بات کو یقینی بنائیں کہ شیلیوں شیٹ متوقع طور پر مرتب کیا جارہا ہے.

March 1, 2018