Có SASS.js không? Một cái gì đó giống như LESS.js?


112

Tôi đã sử dụng LESS.js trước đây. Nó dễ sử dụng, giống như

<link rel="stylesheet/less" href="main.less" type="text/css">
<script src="less.js" type="text/javascript"></script>

Tôi thấy SASS.js . Tôi có thể sử dụng nó theo cách tương tự như thế nào? Phân tích cú pháp tệp SASS để sử dụng ngay trong HTML. Có vẻ như SASS.js được sử dụng nhiều hơn với Node.js ?

var sass = require('sass')
sass.render('... string of sass ...')
// => '... string of css ...'

sass.collect('... string of sass ...')
// => { selectors: [...], variables: { ... }, mixins: { ... }}

6
Đối với sản xuất, nó là gốc rễ của cái ác, đối với sự phát triển bạn có sass watch.
Hauleth

3
Tôi thích ý tưởng vì vấn đề với "sass watch" là đôi khi bạn vô tình kiểm tra trang trước khi "sass watch" chạy. Với less.js, bạn không thể tải trang và hãy chắc chắn rằng css đã được biên dịch khi bạn nhìn thấy trang. Tất nhiên chỉ trong môi trường dev.
Maya Kathrine Andersen

Kiểm tra SassMeister: sassmeister.com - một trình biên dịch SASS trực tuyến miễn phí
Dan

1
Thực sự là có sass.js
LukyVj

@Hauleth sass watch (như ít đồng hồ hơn) đôi khi không phải là một lựa chọn. Đặc biệt khi các tệp nguồn của bạn được xử lý bởi bản dựng / phụ thuộc của bên thứ ba và bạn chỉ có thể có các tệp nguồn đầy đủ khi bạn đang đóng gói hoặc triển khai ứng dụng web của mình và triển khai chậm. (tức là ... ứng dụng web java)
Zardoz89

Câu trả lời:


42

Không có sự triển khai JavaScript chính thức nào của sass hoặc scss. Có một số triển khai đang được thực hiện mà tôi đã thấy, nhưng không có triển khai nào mà tôi có thể khuyên bạn nên sử dụng vào lúc này.

Tuy nhiên, xin lưu ý một số điểm:

  1. Tại sao bạn nên yêu cầu tất cả người dùng biên dịch các bảng định kiểu của bạn trong khi bạn có thể làm điều đó một lần cho tất cả họ.
  2. Trang web của bạn sẽ trông như thế nào nếu JavaScript bị tắt.
  3. Nếu bạn quyết định thay đổi sang triển khai phía máy chủ trong tương lai, tất cả các mẫu của bạn phải được thay đổi tương ứng.

Vì vậy, trong khi cần thiết lập thêm một chút để bắt đầu, chúng tôi (nhóm nòng cốt của sass) nghĩ rằng biên dịch phía máy chủ là cách tiếp cận lâu dài tốt nhất. Tương tự, càng ít nhà phát triển thích biên dịch phía máy chủ cho các bảng định kiểu sản xuất.


157
trường hợp sử dụng của tôi: phát triển mẫu html + css sẽ được đưa vào dự án rails. sẽ rất vui nếu có sass.js cho mục đích phát triển localhost để tôi không phải loay hoay với những thứ máy chủ.
Josef Richter

93
Có nhiều trường hợp mà việc biên dịch phía máy khách hữu ích. Ví dụ: nếu bạn muốn cho phép người dùng chơi với giao diện trang của họ và chỉ lưu kết quả họ chọn trở lại máy chủ.
montrealmike

26
Tôi 100% đồng ý với chriseppstein (tại sao bạn lại muốn người dùng biên dịch các bảng định kiểu), không được đề cập ở đây, đơn giản và dễ hiểu: phát triển. Tất cả mã js đã triển khai của tôi, tôi muốn được rút gọn và nén, như với css của tôi. Nhưng trong quá trình phát triển, nó giúp có quyền truy cập vào hơn là phiên bản "biên dịch". Tôi không chắc mình nói cho tất cả các kỹ sư front-end, nhưng tôi có thể nói rằng rất nhiều người trong chúng ta sử dụng trình duyệt và trình chỉnh sửa của mình như những công cụ duy nhất cần thiết trong giai đoạn phát triển. Tôi không muốn phải "biên dịch" sass / scss trong quá trình phát triển. Triển khai / CI / Sản xuất là một vấn đề khác
Graza

15
Để ném một cái gì đó vào phía tác giả; Tôi muốn xem xét sử dụng SASS nhưng tôi không sử dụng cũng như không muốn sử dụng Ruby; do đó giải pháp từ phía khách hàng không thích hợp hơn. Viết nó bằng Ruby hạn chế việc sử dụng nó chỉ cho người dùng ruby; nếu nó được viết bằng JS, nó có thể được sử dụng trên máy khách hoặc trên máy chủ (với nút, asp cổ điển, asp.net và có thể là những thứ khác).
Dan

27
triển khai JavaScript cũng có thể được sử dụng phía máy chủ với nút / tê giác, v.v. mà không cần phải phụ thuộc vào ruby
Sam Hasler

29

Kể từ visionmeda / sass.js là không có sẵn nữa và SCSS-js chưa được cập nhật trong vòng 2 năm, tôi có thể bạn quan tâm trong sass.js . Đó là thư viện C ++ libsass (cũng được sử dụng bởi node-sass ) được biên dịch sang JavaScript bằng Emscripten. An thực hiện để stylesheets SCSS biên dịch liên kết hoặc inlined trong html có thể được tìm thấy tại sass.link.js .

Dùng thử sass.js bằng sân chơi tương tác


3
Bây giờ chúng ta chỉ cần một trình biên dịch C ++ sang Ruby và chúng ta có thể thống nhất codebase.
joeytwiddle

1
sass.js dường như có kích thước lớn hơn đáng kể 670KB (gzipped) so với kích thước ít hơn .js 143kb (gzipped). Ngoài ra, tôi không thấy bất kỳ tùy chọn nào trong sass.js để đặt động các biến css so với less.js. điều này thực sự hữu ích khi bạn có trang web đáng chú ý
Anirudha

7

ĐÚNG

Như chúng tôi đã mong đợi, sau khi viết lại nó trên C ++ , có thể biên dịch nó bằng Javascript thông qua Emscripten .

Đây là phiên bản trình duyệt: https://github.com/medialize/sass.js/

Như họ đề xuất, đối với nút, bạn có thể sử dụng nút này: https://github.com/sass/node-sass


2
Sự kết hợp của câu trả lời này và câu trả lời (hiện được chấp nhận) sẽ là câu trả lời được chấp nhận thực tế.
plaidcorp 14/07/17


5

Bạn chắc chắn không nên bắt tất cả người dùng của mình biên dịch các bảng định kiểu, tuy nhiên, việc triển khai javascript cũng có thể chạy trên máy chủ. Tôi cũng đang tìm cách triển khai sass javascript - để sử dụng trong ứng dụng node.js. Đây có phải là điều mà nhóm sass đang xem xét?


3
Tôi không muốn sử dụng SASS.js để sản xuất! Tôi muốn có thể triển khai máy phát triển mà không cần cài đặt ruby ​​chỉ dành cho SASS. Sau khi phát triển xong, tôi có thể xử lý SASS trên bất kỳ máy nào và chuyển CSS kết quả đến máy chủ sản xuất.
A. Matías Quezada

1
Tôi khuyên bạn nên xem xét việc sử dụng Stylus thay vì sass trên các dự án Node.
airtonix

3

Có một nỗ lực trên GitHub , scss-js . Tuy nhiên, nó vẫn chưa hoàn thiện và chưa có bất kỳ cam kết nào trong năm tháng.


1
Điều này trông giống như một mô-đun js nút? Câu hỏi ban đầu là một triển khai phía khách hàng, không?
jayarjo

1

Tại sao LibSass

Mặc dù không có sự triển khai JavaScript chính thức nào bị trừng phạt đối với sass, nhưng có một cổng C / C ++ chính thức của công cụ Sass, được gọi là LibSass . Vì LibSass là một triển khai chính thức, tốt nhất bạn nên chọn một thư viện JavaScript có sử dụng LibSass.


Trên máy chủ

Đối với JavaScript chạy trong môi trường Node.js, có Node-sass .

Về cơ bản, Node-sass sử dụng chính LibSass.


Trong trình duyệt

Để chạy JavaScript trong trình duyệt, có Sass.js .

Bên cạnh đó, Sass.js sử dụng phiên bản LibSass (v3.3.6 tại thời điểm tôi viết bài này) đã được chuyển đổi sang JavaScript với Emscripten .

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.