115

我以前用过LESS.js。它很容易使用,比如

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

我看到了SASS.js。我怎样才能以类似的方式使用它?解析 SASS 文件以在 HTML 中立即使用。似乎 SASS.js 更适合与Node.js一起使用?

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

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

7 回答 7

42

没有官方认可的 sass 或 scss 的 JavaScript 实现。我已经看到了一些正在进行中的实现,但目前没有一个我可以推荐使用。

但是,请注意几点:

  1. 当您可以为所有用户编写一次样式表时,为什么还要让所有用户编译您的样式表。
  2. 如果 JavaScript 被禁用,您的网站会是什么样子。
  3. 如果您决定在将来更改为服务器端实现,则必须相应地更改所有模板。

因此,虽然开始需要更多的设置,但我们(sass 核心团队)认为服务器端编译是最好的长期方法。同样,较少的开发人员更喜欢对生产样式表进行服务器端编译。

于 2010-12-21T01:59:36.410 回答
31

由于 visionmeda/sass.js 不再可用,而且 scss-js 已经有 2 年没有更新了,我可能会对sass.js感兴趣。它是使用 Emscripten 编译为 JavaScript的 C++ 库libsass(也由node-sass使用)。可以在sass.link.js中找到编译在 html 中链接或内联的 scss 样式表的实现。

使用交互式游乐场试用 sass.js

于 2014-01-21T23:13:10.370 回答
9

是的

正如我们所料,在C++上重写后,可以通过Emscripten在 Javascript 中编译它。

这是浏览器版本:https ://github.com/medialize/sass.js/

正如他们推荐的那样,对于节点,您可以使用这个:https ://github.com/sass/node-sass

于 2015-12-01T09:46:51.983 回答
6

我刚刚发现了一个有趣的 Sass.js Playground。这些年来,有些事情可能发生了变化。看一下这个:

http://medialize.github.io/playground.sass.js/

于 2015-08-19T07:27:34.150 回答
4

您绝对不应该让所有用户都编译样式表,但是 JavaScript 实现也可以在服务器上运行。我也在寻找一个 javascript sass 实现 - 在 node.js 应用程序中使用。这是 sass 团队正在考虑的事情吗?

于 2011-01-02T04:59:15.730 回答
3

在GitHub 上有一个尝试,scss-js。但是,它是不完整的,并且在五个月内没有任何提交。

于 2011-02-24T20:16:53.660 回答
1

为什么选择 LibSass

虽然没有官方认可的 sass JavaScript 实现,但有一个官方的 Sass 引擎的 C/C++ 端口,称为LibSass。因为 LibSass 是官方实现,所以最好选择在底层使用 LibSass 的 JavaScript 库。


在服务器上

对于在 Node.js 环境中运行的 JavaScript,有Node-sass

在底层,Node-sass 使用 LibSass 本身。


在浏览器中

对于在浏览器中运行的 JavaScript,有Sass.js

在底层,Sass.js 使用了一个已通过Emscripten转换为 JavaScript 的 LibSass 版本(在我撰写本文时为 v3.3.6)。

于 2016-08-10T12:08:26.070 回答