有没有 SASS.js? 像 LESS.js 这样的?

我以前用过 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: { ... }}
50415 次浏览

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

不过,请注意以下几点:

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

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

您当然不应该让所有用户都编译样式表,但是 javascript 实现也可以在服务器上运行。我还在寻找一个 javascript 的 sass 实现——用在 node.js 应用程序中。这是顶嘴队在考虑的事吗?

There is an attempt on GitHub, Scss-js. However, it is incomplete and hasn't had any commits in five months.

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

使用 互动游乐场尝试 sass.js

I just discovered an interesting Sass.js Playground. A few things may have changed over the years. Check this out:

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

是的

As we were expecting, after rewriting it on C + + , it is possible to compile it in Javascript via 铭文.

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

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

为什么是 LibSass

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


在服务器上

For JavaScript running in a Node.js environment, there's < strong > Node-sass .

Under the hood, Node-sass uses LibSass itself.


In the browser

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

在底层,Sass.js 使用了 LibSass 的一个版本(在我写这篇文章的时候是 v3.3.6) ,这个版本已经通过 < strong > Emscripten 转换成了 JavaScript。