Sass hay La bàn không có ruby?


102

Có cách nào để sử dụng Sass hoặc Compass hoặc bất cứ thứ gì tương tự mà không có Ruby không?

Tôi đã tìm kiếm khắp google và trang web này và không thể tìm thấy bất cứ điều gì, mọi sự giúp đỡ sẽ được đánh giá cao. Cảm ơn bạn



3
Đây có phải là một câu hỏi thực sự? Ý tôi là không rõ ý bạn. Có bộ xử lý tiền CSS nào khác không dựa trên Ruby không? Đúng. Có cách nào để biên dịch Sass mà không cần Ruby không? Phụ thuộc. Chúng tôi cần thêm nền tảng.
Jamund Ferguson

Nhưng bạn không chỉ định ngôn ngữ nào bạn muốn trình phân tích cú pháp được viết sang.
Alejandro García Iglesias

1
Có cách nào để tải xuống phiên bản được biên dịch trước không?
William

Câu trả lời:


53

Sass ban đầu được viết cho Ruby, nhưng bây giờ họ đã tạo libSass , một C/C++cổng của công cụ Sass, giúp tích hợp công cụ này vào IDE hoặc một ngôn ngữ khác dễ dàng hơn. Tại thời điểm này, bạn có thể sử dụng công cụ Sass trong Ruby, Node.js , Python , PHP , Java , .NET và các công cụ khác. Để biết thêm thông tin, hãy truy cập libSass . Ngoài ra, IDE của bạn có thể có một plugin hỗ trợ Sass mà không cần ruby ​​bằng cách sử dụng libSass.

Câu trả lời ban đầu bên dưới có thể áp dụng cho trường hợp của bạn (tùy thuộc vào việc ngôn ngữ của bạn có triển khai hỗ trợ cho libSass hay không). Tôi quyết định để nó như vậy vì lý do lưu trữ.


Sass (yêu cầu Ruby)

Sass được viết bằng Ruby, vì vậy bạn cũng cần cài đặt Ruby. Lấy từ trang của sass

La bàn (yêu cầu Ruby, vì nó dựa trên SASS)

La bàn là một khung soạn thảo CSS mã nguồn mở sử dụng ngôn ngữ biểu định kiểu Sass để giúp việc viết biểu định kiểu trở nên mạnh mẽ và dễ dàng. Lấy từ trang của la bàn

Ít hơn (được viết bằng js, yêu cầu có node.js hoặc ít hơn.js trong trang)

LESS mở rộng CSS với các hành vi động như biến, mixin, hoạt động và hàm. LESS chạy trên cả phía máy khách (Chrome, Safari, Firefox) và phía máy chủ, với Node.js và Rhino. Lấy từ trang của Less

Đây là những bộ vi xử lý chính mà tôi biết. Bạn có thể viết trình phân tích cú pháp / cổng của riêng mình cho bất kỳ ngôn ngữ nào khác mà bạn chọn.

Nói cách khác, bạn không thể sử dụng sass / compa mà không có Ruby vì bản thân chương trình (sass & compa) được viết bằng Ruby. Vì vậy, bạn chắc chắn sẽ cần nó để chạy nó.


Điều này là chính xác về mặt kỹ thuật nhưng không thực sự đến mức vì nhiều plugin khác nhau có thể xử lý nó cho bạn. Ví dụ trong Visual Studio có plugin Mindscape Workbench có môi trường ruby ​​độc lập mà bạn sẽ không phải lo lắng. Nó sẽ không bao gồm la bàn cho bạn, tuy nhiên nó là một loại thiết bị hạ gục.
George Mauer

@TroyCosentino hoặc Stylus
Alejandro García Iglesias

Không, tôi chưa thử tìm các trình biên dịch tương tự ở các ngôn ngữ khác. Bạn sẽ có thể viết một biên dịch từ đầu bằng khá nhiều ngôn ngữ tốt nhưng điều đó có lẽ sẽ khiến bạn mất rất nhiều thời gian. Trước tiên, bạn sẽ phải có thể phân tích cú pháp css (và phát hiện bất kỳ lỗi nào trong cú pháp css) và sau đó bạn sẽ phải "biên dịch" (phần lớn là định dạng lại - tức là mã css là một dòng) css. Sau đó, có lẽ bạn sẽ muốn thêm nhiều css với tính năng kế thừa. Nếu bạn cảm thấy bạn có thời gian, bạn có thể thử làm việc đó và chia sẻ kết quả với chúng tôi :)
tftd

1
LESS cũng có thể có trong .NET bằng cách sử dụng gói dotLESS NuGet.
David Boike

27

Đúng là câu hỏi không đủ rõ ràng, nhưng tôi sẽ cố gắng giải quyết một số vấn đề. Có CSS pre-vi xử lý khác mà không dựa trên Ruby (hai đến tâm trí của tôi ngay bây giờ là ít , mà tôi đã sử dụng và thích, nhưng không phải là mạnh mẽ như Sass, và Stylus , mà tôi đã không được sử dụng, cả hai đều dựa trên JavaScript), nhưng khi bạn đang hỏi cụ thể về Sass + Compass và vì tôi vẫn đang tìm kiếm câu trả lời tương tự, tôi sẽ nói về điều đó.

@JamundFerguson cho biết:

Có cách nào để biên dịch Sass mà không cần Ruby không? Phụ thuộc.

Sass là một ngôn ngữ xử lý trước. Có một trình biên dịch được xây dựng trong Ruby cho nó và bất kỳ ai cũng có thể viết trình biên dịch bằng bất kỳ ngôn ngữ nào. Có một triển khai C của một trình biên dịch Sass được gọi là libsass , có thể được sử dụng trên bất kỳ ngôn ngữ nào cho phép nhập C libs. Đó là thư viện được sử dụng bởi node-sass , là một trình biên dịch được xây dựng trong Node.js , tôi chưa thử và không biết nó có thể hoạt động như thế nào và liệu nó có sẵn sàng để sử dụng trong sản xuất hay không. Có thể là một câu hỏi về thời gian để La bàn được chuyển (có thể bạn kết thúc việc đó?) Và vì vậy chúng tôi có thể có một trình biên dịch không phụ thuộc vào đá quý Ruby (hiện tại, có một mô-đun la bàn nút làm dựa vào viên ngọc Ruby).

Những ngôn ngữ khác

Cho đến nay, tôi đã đề cập đến khả năng cho một trình biên dịch Node.js, như bạn có thể biết, đó là một môi trường JavaScript, là ngôn ngữ của web và là ngôn ngữ tôi lựa chọn. Nhưng bạn đã không chỉ định ngôn ngữ bạn muốn trình biên dịch được viết sang. Tôi nghĩ rằng có thể có các trình biên dịch được xây dựng bằng nhiều ngôn ngữ, ví dụ: @EricMeyer đã đề cập đến trình biên dịch Python . Có lẽ anh ấy đang sử dụng pyScss ? Điều đó dường như đã được tích hợp hỗ trợ cho La bàn. Nhưng sau đó bạn cần một môi trường Python. Vì vậy, vấn đề là: bạn sẽ cần một số môi trường cho trình biên dịch trừ khi bạn chạy các tệp nhị phân được biên dịch tự nhiên. (Less có less.js có thể được đưa vào trang để chạy phía máy khách và tránh bước biên dịch, nhưng nó không có nghĩa là để sử dụng nó trong sản xuất.)

Ứng dụng gốc

Tôi đã làm việc trong một năm với CodeKit, tính năng này hoạt động rất tốt, biên dịch các ngôn ngữ Sass / Compass, Less, Stylus và các ngôn ngữ mẫu như Haml, Slim, Jade, v.v. Xây dựng lại nội dung của bạn khi chúng tự động thay đổi và bạn thấy thay đổi trên trình duyệt của mình ngay lập tức. Điều duy nhất mà tôi không thích là khi chuyển sang một máy tính khác, cài đặt CodeKit, kiểm tra dự án và cố gắng sử dụng nó, tôi phải định cấu hình lại cài đặt dự án, điều này tôi phải nhớ để có thể xây dựng giống như một trong những tôi đã thực hiện trong máy tính khác. Ngoài ra, tôi đã bắt đầu làm việc với một nhóm và họ cũng phải định cấu hình dự án với cùng một cài đặt (đôi khi không có cùng cấu hình dự án dẫn đến sự mâu thuẫn xấu xí) và các thành viên của nhóm sử dụng Ubuntu cũng không thể sử dụng nó. Cái đó'ngay lập tức, và yêu nó. Như @Dave đã đề cập, có Scout và cũng có LiveReload , nhưng chưa sử dụng chúng.

Phần kết luận

Kết luận là tôi không có một kết luận chắc chắn. Tôi vẫn đang tìm câu trả lời tương tự, nhưng tôi hy vọng câu trả lời này làm sáng tỏ một chút về tình trạng biên dịch Sass / Compass bên ngoài môi trường Ruby.


1
Đối với trạng thái của libsass: solitr.com/blog/2014/01/state-of-libsass , node-sass và các thư viện sass khác phụ thuộc vào.
Ehtesh Choudhury

27

Trên thực tế, có một thư viện cung cấp ràng buộc cho Node.js với libsass, phiên bản C của Sass: https://npmjs.org/package/node-sass

Nó cho phép bạn biên dịch các tệp .scss sang css với tốc độ đáng kinh ngạc mà không cần cài đặt Ruby.

Để cài đặt chỉ cần chạy:

npm install node-sass

Và cũng có phần mở rộng Grunt nếu cần: https://github.com/sindresorhus/grunt-sass (đây là những gì tôi đang tìm kiếm trong câu hỏi này)

Tìm hiểu thêm tại: https://github.com/andrew/node-sass


1
grunt-sass là những gì tôi đang tìm kiếm.
9ilsdx 9rvj 0lo

11

Chỉ cần cập nhật một chút về điều này, bạn có thể sử dụng các tệp SCSS / SASS và tạo các tệp chính xác ngay lập tức mà không cần cài đặt Ruby bằng cách sử dụng một chương trình có tên là Scout.

Scout có môi trường ruby ​​riêng và được mã hóa bằng java, vì vậy hãy đảm bảo rằng bạn đã cập nhật java trước khi sử dụng. Liên kết ở đây.

Trân trọng :)


8
Tôi thà ruby trên java;)
basarat

Thực ra tại thời điểm tôi viết bài Hướng đạo sinh này sử dụng Adobe Air. Có thể một phiên bản cũ đã sử dụng Java?
iconoclast

3
vẫn tốt hơn ruby ​​so với Air :)
x0x



2

Adobe Brackets (miễn phí, mã nguồn mở) có thể biên dịch LESS, SASS và Stylus khi tệp được thay đổi và cập nhật kiểu trong khi xem trước trực tiếp, bạn chỉ cần cài đặt các tiện ích mở rộng cần thiết từ trình quản lý tiện ích mở rộng. Nhận Brackets và tận hưởng!

Chỉnh sửa: Như các câu hỏi khác gợi ý rằng node-sass cũng là một lựa chọn tốt nếu bạn đã cài đặt nodejs.

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.