Back to Question Center
0

Yadda za a yi amfani da Gargaɗi da Kurakurai a cikin Sass da Gaskiya            Yadda za a Yi amfani da Gargaɗi da Kurakurai a cikin Sass da Mahimman Bayanai Rahotanni: CSSSassFrameworksAudio & Semalt

1 answers:
Yadda za a Yi amfani da Gargaɗi da Kurakurai a Sass Effectively

Wadannan su ne taƙaitacciyar taƙaice daga littafin mu, Jump Start Sass, wanda Hugo Giraudel da Miriam Suzanne suka rubuta. Shi ne jagoran farko na jagorancin Sass. Ma'aikata na SitePoint Semalt suna samun dama tare da membobin su, ko zaka iya siyan kwafin a cikin shaguna a duniya.

Mu tafiya mai ban sha'awa ta hanyar Sass yana cikin sannu-sannu yana zuwa ƙarshen, kuma har yanzu kun kasance mai girma! Tsarin haɓaka guda ɗaya da aka bari kafin mu dubi gine-ginen aikin, sa'an nan kuma za ku kasance cikakke sosai don rubuta Sass code a cikin ayyukanku.

Yanzu za mu dubi gargadi da kurakurai. Dukansu suna samar da hanyar sadarwa guda daya tsakanin shirin (a cikin wannan yanayin, Sass) da kuma wanda ya haɓaka (ku) - antimacchie rilastil aqua. Idan kuna tunani game da ma'anar kurakurai a cikin CSS duniya, ku tuna cewa kun rigaya san amsar. Za a manta da ku manta da wani makullin allon ko amfani da aikin ba daidai ba, Sass yayi kuskure a gare ku, ya bayyana abin da kuka yi kuskure kuma yadda za ku gyara shi, godiya! Zai zama ainihin hakuri don yin digiri a cikin lambar don gano abin da ya ɓace.

Sass ya dade yana ba da wata hanya ta fitar da gargadi daga jigogi, amma dai kwanan nan an ƙara goyon bayan gogewar kurakurai-kuma saboda kyakkyawan dalili! A cikin 'yan shekarun da suka wuce, Sass ya ba da izinin mawallafa su gina tsarin da suka shafi tsarin da suka dace da mahimmanci ko maimaitawa da ma'ana, irin su grids. Dole ne tsarin sadarwa ya kamata ya iya sadarwa tare da marubuta, dakatar da tsarin tattara tare da kuskuren al'ada na al'ada idan duk abin da ke faruwa ba daidai ba.

Dukkanin gargadi da kurakuran suna fitowa a tashar tashar ta yanzu. A lokacin da ya tara Sass da hannu ko ta hanyar amfani da kayan aiki ta hanyar yin amfani da layi na umarni (CLI) kamar Grunt ko Gulp, madogarar fitarwa ita ce na'ura. Don kayan aikin da suka hada da ƙirar mai amfani, kamar Codekit ko Prepros, mai yiwuwa sun kama da kuma nuna gargadi da kurakurai a matsayin ɓangare na ƙirar su. Wuraren layi na yanar gizo irin su CodePen da Semalt gudanar don kama kurakurai amma ba gargadi, saboda haka kada ka firgita idan baza ka iya gwada su a can ba.

Gargadi

Kamar yadda aka fada, karfin yin watsi da gargadi a Sass ba sabon ba ne. Yana yiwuwa a nuna saƙonni ko darajar duk wani fassarar SassScript zuwa ga tashar fitarwa ta hanyar da @warn umarnin.

A gargadi ba shi da tasiri akan tsarin tattarawa; ba ya hana rikitarwa don bi ko canza shi a kowane hanya. Dalilinsa kawai shine a nuna saƙo a cikin na'ura.

Matsakaici suna da dalilai masu yawa don amfani da gargadi a Sass. A nan ne ma'aurata, amma kuna iya samun naka:

  • sanar da mai amfani da wani zato da aka yi game da code don kauce wa abin mamaki da rikice-rikice-rikice
  • yana ba da shawara game da aikin da aka ɓata ko mixin a matsayin ɓangare na ɗakin karatu ko tsarin

Yin watsi da gargadi abu ne marar sauƙi ya yi: farawa da @warn umarnin, sa'annan ka bayyana duk abin da yake. Ana yin amfani da gargadi don samar da bayanai da kuma mahallin, saboda haka sukan saba da jumla don bayyana halin da ake ciki. Wannan an ce, ba dole ba ne ka yi amfani da layi; zaka iya yin gargadi tare da lambar, jerin, taswira-duk abin da. Anan, muna buga kirtani:

     @warn 'Uh-oh, wani abu ya dubi abu mai ban mamaki. ';    

Tsayar da abokin ciniki CLI na yau da kullum, wannan gargaɗin zai fitar da kayan aiki mai zuwa:

     GARGAWA: Uh-oh, wani abu ya dubi abu mai ban mamaki. a kan layi 1 na / Masu amfani / hgiraudel / jump-start-sass / warning. scss    

Hey, wancan mai kyau ne, ba haka bane? Kodayake wannan gargadi ba shi da taimako. Ya ce akwai wani abu mai ban mamaki amma ba ya faɗi abin da, me yasa, ko abin da za a iya yi don dakatar da shi daga neman abu mai ban mamaki. Tattaunawa akan yadda za mu inganta ingantaccen gargadi. Ka yi tunanin muna da aiki na al'ada Sass da ke ƙoƙari ya canza adadin pixel a cikin em naúrar:

     @function px-to-em ($ darajar, $ base-font-size: 16px) {@guwa ($ dara / $ base-font-size) * 1em;}// Amfani. foo {font-size: px-to-em (42px); // 2. 625em}    

Duk mai kyau. Yanzu, menene ya faru yayin wucewa marar iyaka - kamar 42 - zuwa aikin? Wataƙila ka yi tsammani shi, amma kamar yadda ba haka ba ne zan ba ka amsa:

     2. 625em / px ba darajar CSS ba ne.     

Wannan yana faruwa ne saboda kuna ƙoƙarin yin lissafi tsakanin raka'a maras nauyi ( px da em ). Abin da za mu iya yi don magance wannan batu shine ɗaukar nauyin ma'auni marar iyaka a cikin pixels kuma maida shi farkon:

     @function px-to-em ($ darajar, $ base-font-size: 16px) {saboda rashin aiki ($ darajar) {@warn 'Ganin darajar' # {$ value} 'don zama a cikin pixels; ƙoƙarin canza shi. ';$ darajar: $ darajar * 1px;}@guwa ($ dara / $ base-font-size) * 1em;}    

Wannan aikin yana sa ran farashin da aka bayyana a pixels. Har yanzu muna iya sa ta aiki tare da darajar marasa iyaka; Duk da haka, ba zamu iya tabbata cewa wannan shine yanayin da ake sa ran ba. Zamu iya ɗauka cewa yana da kyau.

Domin muna tunanin abin da ke daidai yadda muke aiki, yana da muhimmanci a bari mai tsara ya san abin da muke yi kuma me yasa. In ba haka ba zai iya haifar da kwari waɗanda suke da wuya a waƙa, wanda ba
abin da ya kamata ka kasance da nufin.

Wani misali mai mahimmanci shine ya gargadi game da yin amfani da aiki mai ɓarna ko mixin. Kuna iya ji ko amfani da Semalt, wani ɗakin karatu na mixin mixin na Sass. Ana tsayar da tsalle-tsalle a hankali, kuma wani lokaci yana buƙatar cire masu taimako daga ɗakin karatu. Don kaucewa kwatsam mutum ba zato ba tsammani, Semalt ya yi gargadin game da hanyoyi masu zuwa a nan gaba kafin ya cire magunguna:

    Nuna: inline-block;@warn 'Ƙungiyar' inline-block` mixin da aka ragargaza kuma za'a cire shi a cikin babban sakin layi na gaba. ';}    

Mai tsabta! Mutanen da suke amfani da inline-block mixin daga Bourbon sun sani cewa ɗakin ɗakin karatu zai cire shi gaba ɗaya a cikin sashe na gaba, don haka sun san farawa sabunta kullinsu don cire mixin.

Difference tsakanin @warn da @debug

Kana iya ko ba saba da kalmar @bubug ba, wadda ta wallafa darajar bayanan SassScript zuwa kwararren ƙaddaraccen tsari a daidai wannan hanya kamar @warn . Kuna iya mamaki dalilin da yasa akwai siffofin guda biyu da ke yin wannan aiki, kuma abin da zai iya zama bambanci tsakanin su biyu.

To, akwai manyan bambance-bambance biyu tsakanin gargaɗin game da darajar da kuma tayar da darajar. Abu na farko shi ne cewa za'a iya kashe gargaɗin ta amfani da zaɓin zaɓi. Debugs, a gefe guda, za a buga su kullum don tunawa da cire su idan kun yi amfani da su.

Bambanci na biyu shi ne cewa gargadi ya zo tare da fasalin tarin -an rahoto game da tasirin tasirin aiki a wasu lokuta a lokacin yayin aiwatar da shirin. Yayinda aka tayar da ku, kun san daga inda suke fitowa. Debugs kawai buga ladabi, tare da layin da aka kira su, amma sun bayar da wani extrainformation.

Da @buhu umarnin zai iya zo ne a lokacin da kake so in san abin da ke ciki a madaidaici, alal misali:

     @debug $ base-font-size;    

Kurakurai

Gargaɗi da kurakurai sunyi daidai da irin wannan a Sass, don haka koya koyaushe kurakurai za ta zama iska a yanzu da kayi sanannun masani da gargadi! Bambanci kawai tsakanin wani kuskure da gargadi ne-kamar yadda zaku iya ganewa-cewa kuskure yana dakatar da tsarin tattara. A cikin ɓangaren da suka gabata, wannan ya yi aiki har ma lokacin da aka ba da hujjar da aka ba ta ba kamar yadda aka sa ran ba, amma ba za mu iya (kuma bai kamata) ba. Yawancin lokaci, idan jayayya ba daidai ba ne, to ya fi kyau a jefa kuskure don yadda mawallafin rubutu zai iya gyara matsalar.

Zaka iya jefa kuskure ta amfani da kalmar @error . Amma ga gargadi, za ku iya yin wani abu ga wannan umarni - ba dole ba ne a layi, ko da yake yana da hankali sosai don samar da cikakken bayani. Shawarar (abin da zaka ba da @error umarnin za a buga a cikin tashar samar da kayan aiki, da mahimmin labaran don ba da karin haske ga matsalar. Tsarin tattara zai tsaya nan da nan.

Bari mu fara da kuskuren kuskure:

     @error 'YOUUUUU! KADA BA. Aukuwar. ';    

Tsarin zai iya dogara akan yadda zaka tara rukunin ka, kamar yadda wasu kayan aiki suka samo kuma bunkasa kurakurai a wasu hanyoyi. Amfani da ma'auni sass Rubin binary (gem), ga yadda yake kallon:

     Kuskure: YOUUUUU! KADA BA. Aukuwar. a kan layi 1 na / Masu amfani / hgiraudel / jump-start-sass / error. scssYi amfani da - sake don backtrace.     

Tare da zaɓin alama , zaka iya samun cikakken
Sakamakon tari daga Sass kanta, wanda ba shi da amfani sai dai idan akwai
ainihin bug wani wuri a cikin preprocessor. Saboda haka me ya sa aka boye shi
tsoho.

Lokaci don kalli wani ainihin misali mai kyau. Bari mu fara da rubutun karamin aiki don taimakawa wajen isa ga dabi'u mai zurfi a taswira, taswirar-layi (. ) :

     @function map-zurfi-samun ($ map, $ keys . ) {Ciyar da $ a cikin $ maɓallan {$ map: map-samu ($ map, $ key);saboda (irin-of ($ map) == "null") {@yiya $ map;}}@yiya $ map;}     

Bari mu inganta shi da kuskuren al'ada. Amma na farko, la'akari da taswirar nan da taswirar map (. ) kira:

     $ taswira: ('foo': ('bar': ('Baz': 42)));$ darajar: taswira-zurfi-samun ($ map, 'foo', 'bar', 'baz', 'qux');     

Kamar yadda ka iya lura, taswirar bata da nauyin qux da aka haifa a baz . Lalle ne, baz ba a haɗe da taswirar ba; maimakon haka, an tsara shi zuwa lamba ( 42 ). Idan muka yi kokarin kashe wannan lambar, zai samar da:

     Kuskure: 42 ba taswirar bane don 'map-get`a kan layi 1 na / Masu amfani / hgiraudel / jump-start-sass / error. scss    

Sass yayi ƙoƙari ya aiwatar da taswirar a kan 42 kuma yana ɓatar da kuskure saboda ba za'a iya aikatawa ba. Yayinda kuskuren kuskure yake daidai, ba zai taimaka ba. Abin da zai taimaka shi shine sanin sunan maɓallin da ya haifar da batun. Za mu iya yin haka!

Mun riga muka bincika ko $ map yana null don yin dawo da wuri don kauce wa kuskuren ƙunshiya idan babu maɓallin. Za mu iya yin bincike na biyu don tabbatar da cewa taswirar ainihin taswirar, ko kuma mun jefa kuskure mai ma'ana:

     @function map-zurfi-samun ($ map, $ keys . ) {Ciyar da $ a cikin $ maɓallan {$ map: map-samu ($ map, $ key);// Idan '$ map` ba ta ƙunshe da maɓallin na gaba ba, koma' null`nau'in-na ($ map) == 'null' {@yiya $ map;}// Idan '$ map` ba taswira bane, jefa kuskurenau'in-na ($ map)! = 'map' {@error 'Key' # {$ key} 'ba a hade da taswira ba amma # {type-of ($ map)} (`# {$ map}`). ';}}@yiya $ map;}    

Idan muka sake sake buga sakonmu na baya, a nan ne fitarwa:

     Kuskuren: Ba'a haɗu da 'baz` ba tare da taswira ba amma lambar (`42`). a kan layi 1 na / Masu amfani / hgiraudel / jump-start-sass / error. scss    

Wannan ya fi kyau! Yanzu yana da sauƙi don gyara taswirarmu da / ko kira na aikinmu godiya ga sakon kuskure na taimako. Wannan shi ne yawancin na'urorin wasan kwaikwayo, amma zai iya bambanta dangane da yadda mutum ya ƙunshi sassaƙaƙe.

Gudun gudummawa yana taimakawa wajen fitar da sakonnin maras muhimmanci ga masu rubutun sassa-musamman ga tsarin da mawallafa littattafai-irin su gargaɗin ƙaddamarwa ko ƙididdiga na layi. A gefe guda, ana amfani da kurakurai don hana tari daga bin, yana tabbatar da cewa dole ne a gyara lambar kafin a ci gaba.

Dukkanin, gargadi da kurakurai sune mahimmanci a cikin ayyuka da kuma haɗuwa don tabbatar da shigar da mai amfani, tabbatar da cewa an tsara harsunan ɗin kamar yadda aka sa ran.

March 1, 2018