มีวิธีการรวบรวมไฟล์น้อยไป CSS หรือไม่ (เพื่อให้ทุกเบราว์เซอร์ไม่ต้อง)


20

ฉันกำลังพิจารณาใช้LESSแต่ฉันคิดว่าเบราว์เซอร์ที่ปิดใช้งาน JavaScript และ CSS ของฉันไม่สามารถอ่านได้ (และไซต์ดูแย่มาก)

นอกจากนี้ยังทำให้วิศวกรในฉันบังคับให้ทุก ๆ เบราว์เซอร์ "คอมไพล์" ไฟล์ Less เป็น. css เมื่อเราสามารถ "คอมไพล์" มันเพียงครั้งเดียวทุกครั้งที่เราแก้ไขมัน


1
@ Anonymous- หากคุณดู LESS คุณควรดู SASS และ COMPASS ด้วย
Sorcy

Stylus และ OOCSS เป็นผลิตภัณฑ์ที่คล้ายกัน
Lèsemajesté

1
ฉันได้โพสต์คำตอบที่เกี่ยวข้องซึ่งอธิบายถึงวิธีการตั้งค่าการรวบรวม LESS โดยอัตโนมัติบนเซิร์ฟเวอร์: webmasters.stackexchange.com/questions/38386/…
romaninsh

3
ฉันไม่รู้ว่ามีใครรวบรวม LESS ในเบราว์เซอร์บ้าง!
Kenny Evitt

คำตอบ:


17

ใช่. คุณสามารถใช้แอพที่รวบรวมไฟล์ LESS ให้กับ CSS บนเครื่องพัฒนาของคุณโดยอัตโนมัติขณะที่คุณโค้ด จากนั้นอัปโหลดไฟล์ CSS ที่สร้างขึ้นไปยังเซิร์ฟเวอร์ของคุณเมื่อคุณพัฒนาเสร็จแล้ว



10

LESS มาพร้อมกับไบนารี่ (lessc) ที่ให้คุณทำการคอมไพล์ไฟล์ .less ของคุณล่วงหน้า คุณใช้มันเช่น:

 $ lessc styles.less > styles.css

แต่ฉันคิดว่าคนส่วนใหญ่ใช้คำสั่งlessc -wor lessc --watchเพื่อคอมไพล์สไตล์ชีท CSS ใหม่โดยอัตโนมัติทุกครั้งที่มีการอัพเดทไฟล์ LESS คุณสามารถมี CSS น้อยลงเช่นlessc -w -xกัน

แก้ไข:เพื่อชี้แจง, lessc มาพร้อมกับการติดตั้งฝั่งเซิร์ฟเวอร์ (เช่นเมื่อคุณติดตั้งน้อยลงผ่านตัวจัดการแพคเกจ node.js) แต่คุณสามารถดาวน์โหลดได้ด้วยตนเองจาก GitHub

lessc /bin/lesscตั้งอยู่ที่ นี้เป็นหลักสูตรไบนารีระวัง * (ควรทำงานสำหรับ Mac) แต่มีเป็นไบนารี Windows ( lessc.exe ) ตาม dotless ซึ่งเป็นอีกหนึ่งของ Windows น้อยคอมไพเลอร์

อัปเดต: ใช้less-watchเพื่อรวบรวมโดยอัตโนมัติ

อีกทางเลือกหนึ่งนักพัฒนาวันนี้ใช้นักวิ่งงานที่ต้องการgruntจัดการสร้างระบบอัตโนมัติ (รวบรวม, ลดขนาด, การทดสอบและอื่น ๆ ) การใช้grunt-contrib-watch, grunt-contrib-lessและgrunt-contrib-livereloadจริงๆคุณสามารถปรับปรุงเวิร์กโฟลว์การพัฒนาของคุณ

ตัวอย่างเช่นถ้าคุณใช้yoเพื่อนั่งร้านโครงการเว็บใหม่ของคุณจะมีการกำหนดค่าล่วงหน้าเพื่อดูไฟล์ LESS / CSS / JS / HTML ของคุณสำหรับการเปลี่ยนแปลงและคอมไพล์ส่วนที่จำเป็นของโครงการเมื่อจำเป็น เรียกใช้grunt serveและคุณพร้อมที่จะโค้ดโดยไม่ต้องกังวลเกี่ยวกับการคอมไพล์ด้วยตนเอง (LESS / SASS / CoffeeScript) / minifying / concatenating รหัสของคุณหรือรีเฟรชเบราว์เซอร์ของคุณเองเหมือนมนุษย์ถ้ำ ...


1
ฉันไม่แน่ใจว่าคุณใช้เวอร์ชั่นไหน ในเวอร์ชั่นล่าสุด 1.3.0 ไม่มีฟีเจอร์ - ชม คำขอดึงสำหรับคุณสมบัติ - Watch ถูกยิงเมื่อ 9 เดือนที่ผ่านมา github.com/cloudhead/less.js/pull/246
เจอราร์ดโรช

@BullfrogBlues: ขออภัยนั่นมาจาก Lessc-based Ruby ที่เก่ากว่า
Lèsemajesté

หมายเหตุ: "less-watch ถูกเปลี่ยนชื่อเป็น fs-change ใช้สิ่งนั้นแทน: npm install -g fs-change."
Andrew Lott

6

มีหลายตัวเลือกสำหรับการรวบรวมน้อยถึง CSS บนเซิร์ฟเวอร์และตัวเลือกที่คุณเลือกอาจขึ้นอยู่กับสิ่งที่คุณใช้สำหรับส่วนที่เหลือของเว็บไซต์

  • ถ้าคุณใช้ Node.js เดิมlesscssจะทำงาน
  • ถ้าคุณใช้ PHP, PHP น้อยลง มันมี API ขยะเล็กน้อยเมื่อพูดถึงการส่งผ่านตัวแปรจาก PHP แต่ทำงานได้
  • หากคุณใช้ Ruby, SASSไม่ใช่ LESS แต่คล้ายกันมากเมื่อฉันเปลี่ยนจากการใช้ SASS (โครงการส่วนตัว) เป็น LESS (โครงการ PHP ในที่ทำงาน) ฉันไม่ได้สังเกตเห็นความแตกต่างใด ๆ นอกเหนือจากนามสกุลไฟล์ นอกจากนี้ยังมีห้องสมุดที่มีประโยชน์ของ mixins - COMPASS ฉันไม่ได้ลองใช้กับ LESS แต่คาดว่าพวกเขาจะใช้งานได้ (เห็นได้ชัดว่า LESS เดิมเป็น Ruby ดังนั้นอาจมีคอมไพเลอร์เก่าที่ลอยอยู่รอบ ๆ ด้วย)
  • ถ้าคุณใช้ ASP.Net . less ฉันไม่ได้ใช้อันนี้ดังนั้นฉันไม่รู้ว่ามันใช้งานได้ดีแค่ไหน
  • ถ้าคุณใช้ Java lesscss4j จะรวบรวมข้อมูลกับสภาพแวดล้อมการเขียนสคริปต์ Rhino ในตัวของ LESS และ Java 6
  • ถ้าคุณใช้ Perl มีโมดูลLESSpใน CPAN

2
มีเป็นคอมไพเลอร์ทับทิมที่มาพร้อมกับอายุต่ำทับทิมอัญมณี แต่ก็ไม่มีการปรับปรุงอีกต่อไปดังนั้นมากของคุณสมบัติใหม่ที่จะไม่ทำงานกับมัน ดังนั้นหากคุณใช้ Ruby ฉันขอแนะนำให้ใช้เพียงlesscไบนารีคอมไพเลอร์ที่อ้างอิงจาก less.js รุ่นล่าสุด
Lèsemajesté

@ Lèsemajestéฉันจะไปกับ SASS แต่ฉันไม่ต้องการถูกกล่าวหาว่าจงใจเพิกเฉยต่อความเป็นไปได้ในการรวบรวม LESS ใน Ruby
Peter Taylor

1
ใช่ฉันคิดว่า SASS จะเป็นตัวเลือกที่ดีที่สุดสำหรับ Ruby เนื่องจากอัญมณี LESS ถูกเลิกใช้ตั้งแต่เปลี่ยนเป็น JS
Lèsemajesté
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.