Có cách nào để biên dịch các tệp LESS thành CSS (để mọi trình duyệt không phải) không?


20

Tôi đang xem xét sử dụng LESS nhưng tôi chùn bước khi nghĩ rằng trình duyệt bị JavaScript bị vô hiệu hóa và CSS của tôi không thể đọc được (và trang web trông thật tồi tệ).

Ngoài ra, nó xúc phạm kỹ sư trong tôi để buộc mọi trình duyệt "biên dịch" tệp Ít hơn đó thành .css khi chúng tôi chỉ có thể "biên dịch" nó một lần mỗi khi chúng tôi sửa đổi nó.


1
@ Khuyết danh- Nếu bạn xem LESS, bạn cũng nên xem SASS và COMPASS.
Sorcy

Bút stylus và OOCSS cũng là những sản phẩm tương tự.
Lèse majesté

1
Tôi đã đăng một câu trả lời liên quan giải thích cách thiết lập tự động biên dịch LESS trên máy chủ: webmasters.stackexchange.com/questions/38386/ trên
romaninsh

3
Tôi không biết ai đang biên dịch LESS trong trình duyệt!
Kenny Evitt

Câu trả lời:


17

Vâng. Bạn có thể sử dụng một ứng dụng tự động biên dịch các tệp LESS thành CSS trên máy phát triển của bạn khi bạn viết mã. Sau đó, chỉ cần tải tệp CSS đã tạo lên máy chủ của bạn khi bạn hoàn tất phát triển.



10

LESS đi kèm với một nhị phân (lessc) cho phép bạn biên dịch trước các tệp .less của bạn. Bạn sử dụng nó như vậy:

 $ lessc styles.less > styles.css

Nhưng tôi nghĩ rằng hầu hết mọi người chỉ sử dụng lệnh lessc -whoặc lessc --watchđể biên dịch lại biểu định kiểu CSS tự động mỗi khi tệp LESS được cập nhật. Bạn cũng có thể giảm bớt CSS, vd lessc -w -x.

Chỉnh sửa: Chỉ cần làm rõ, lessc đi kèm với cài đặt phía máy chủ (nghĩa là khi bạn cài đặt ít hơn thông qua trình quản lý gói node.js). Nhưng bạn có thể tải xuống thủ công từ GitHub .

lessc nằm ở /bin/lessc. Đây là khóa học một nhị phân * nix (cũng nên làm việc cho Mac), nhưng có một nhị phân Windows ( lessc.exe ) dựa trên dotless, mà là một trình biên dịch của Windows LESS.

Cập nhật: Sử dụng less-watchđể tự động biên dịch.

Ngoài ra, nhiều nhà phát triển ngày nay sử dụng các trình chạy tác vụ như gruntđể xử lý tự động hóa xây dựng (biên dịch, thu nhỏ, kiểm tra, v.v.). Sử dụng grunt-contrib-watch, grunt-contrib-lessgrunt-contrib-livereload, bạn thực sự có thể sắp xếp công việc phát triển của bạn.

Ví dụ: nếu bạn sử dụng yođể dàn dựng dự án web mới của mình, thì nó sẽ được cấu hình sẵn để xem các tệp LESS / CSS / JS / HTML của bạn để thay đổi và biên dịch lại các phần cần thiết của dự án khi cần. Đơn giản chỉ cần chạy grunt servevà bạn đã sẵn sàng để viết mã mà không phải lo lắng về việc biên dịch thủ công (LESS / SASS / CoffeeScript) / rút gọn / ghép mã của bạn hoặc làm mới trình duyệt của bạn một cách thủ công như ...


1
Tôi không chắc bạn đang sử dụng phiên bản nào. Trong phiên bản 1.3.0 mới nhất không có tính năng --watch. Yêu cầu kéo cho tính năng --watch đã bị bắn hạ 9 tháng trước. github.com/cloudhead/less.js/pull/246
Gerard Roche

@BullfrogBlues: Xin lỗi, đó là từ lessc cũ dựa trên Ruby.
Lèse majesté

Lưu ý: "ít xem hơn đã được đổi tên thành fs-change. Thay vào đó, hãy sử dụng thay thế : npm install -g fs-change."
Andrew Lott

6

Có một số tùy chọn để biên dịch LESS sang CSS trên máy chủ và tùy chọn bạn chọn có thể sẽ phụ thuộc vào những gì bạn sử dụng cho phần còn lại của trang web.

  • Nếu bạn sử dụng node.js, lesscss ban đầu sẽ thực hiện công việc.
  • Nếu bạn sử dụng PHP, lessphp . Nó có API hơi rác khi chuyển các biến từ PHP, nhưng nó thực hiện công việc.
  • Nếu bạn sử dụng Ruby, SASS không phải là LESS, nhưng tương tự như vậy khi tôi chuyển từ sử dụng SASS (dự án cá nhân) sang LESS (một dự án PHP tại nơi làm việc), tôi không nhận thấy bất kỳ sự khác biệt nào ngoài phần mở rộng tệp. Nó cũng có một thư viện hữu ích của mixins - COMPASS . Tôi đã không thử sử dụng chúng với LESS, nhưng tôi hy vọng chúng sẽ hoạt động. (Rõ ràng LESS ban đầu là Ruby, nên có lẽ cũng có một trình biên dịch cũ trôi nổi ở đâu đó).
  • Nếu bạn sử dụng ASP.Net, có .less . Tôi chưa sử dụng cái này, vì vậy tôi không biết nó hoạt động tốt như thế nào.
  • Nếu bạn sử dụng Java, lesscss4j kết thúc việc biên dịch với môi trường kịch bản Rhino tích hợp sẵn của LESS và Java 6.
  • Nếu bạn sử dụng Perl, sẽ có mô-đun LESSp trong CPAN.

2
một trình biên dịch của Ruby mà đi kèm với viên ngọc LESS của Ruby cũ nhưng nó không cập nhật nữa vì vậy rất nhiều các tính năng mới sẽ không làm việc trên đó. Do đó, nếu bạn sử dụng Ruby, tôi khuyên bạn chỉ nên sử dụng lessctrình biên dịch nhị phân dựa trên phiên bản mới nhất của less.js.
Lèse majesté

@ Lèsemajesté, tôi chỉ đi với SASS, nhưng tôi không muốn bị buộc tội vì cố tình bỏ qua khả năng biên dịch LESS trong Ruby.
Peter Taylor

1
Phải, tôi nghĩ SASS sẽ là lựa chọn tốt nhất cho Ruby vì đá quý LESS đã không còn được sử dụng kể từ khi chuyển sang JS.
Lèse majesté
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.