是否有一个SASS.js?像LESS.js一样?


112

我已经使用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: { ... }}

6
对于生产来说,这是邪恶的根源,对于发展来说,这是邪恶的根源sass watch
Hauleth 2012年

3
我喜欢这个主意,因为“ sass watch”的问题是您有时会在“ sass watch”运行之前意外地测试页面。使用less.js可以加载页面,并确保在看到页面时已编译css。当然仅在开发环境中。
Maya Kathrine Andersen

退房SassMeister:sassmeister.com -一个免费的在线SASS编译器

1
确实有sass.js
LukyVj

@Hauleth sass手表(与少看手表一样)有时不是一个选择。特别是当您的源文件是由第三方构建/依赖项处理的,并且只有在打包或部署Web应用程序并缓慢部署Web应用程序时,才可以拥有完整的源文件。(即Java Web应用程序)
Zardoz89

Answers:


42

没有官方批准的sass或scss JavaScript实现。我已经看到了一些实现中的实现,但是目前我不推荐使用这些实现。

但是,请注意以下几点:

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

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


157
我的用例:开发html + css模板,该模板将放入Rails项目中。拥有用于本地主机开发目的的sass.js很好,这样我就不必摆弄服务器内容。
约瑟夫·里希特

93
在许多情况下,客户端编译很有用。例如,如果要让用户使用页面外观,而只将选择的结果保存回服务器。
montrealmike

26
我100%同意chriseppstein(为什么要让用户编译样式表),这里没有介绍,简单明了:开发。我希望将所有已部署的js代码压缩和压缩,就像使用CSS一样。但是在开发过程中,可以访问代码而不是“编译”版本。我不确定我是否代表所有前端工程师发言,但是我可以说,我们当中很多人都使用浏览器和编辑器作为开发阶段所需的唯一工具。我不想在开发过程中“编译” sass / scss。部署/ CI /生产是另一回事
Graza

15
在作者方面投入一些东西;我想考虑使用SASS,但是我既不使用也不希望使用Ruby。因此,客户端解决方案比没有解决方案更可取。用Ruby编写只能将其用于Ruby用户。如果是用JS编写的,则可能已在客户端或服务器上使用(带有节点,经典asp,asp.net以及其他)。
2012年

27
JavaScript实现也可以与node / rhino等一起在服务器端使用,而不必依赖ruby
Sam Hasler

29

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

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


3
现在我们只需要一个C ++到Ruby编译器,就可以统一代码库。
joeytwiddle

1
sass.js的大小似乎为670KB(压缩),而less.js的大小为143kb(压缩)。我也看不到sass.js中的任何选项来动态设置css变量(与less.js相比)。当您拥有可访问的站点时,这真的很有用
Anirudha



5

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


3
我不想使用SASS.js进行生产!我希望能够部署开发机器而无需仅为SASS安装ruby。开发完成后,我可以在任何计算机上处​​理SASS,并将结果CSS移至生产服务器。
A.MatíasQuezada 2012年

1
我建议您在Node项目上使用Stylus代替sass。
airtonix


1

为什么选择LibSass

尽管没有官方批准的sass JavaScript实现,但是Sass引擎有一个官方的C / C ++端口,称为LibSass。因为LibSass是官方实现,所以最好选择一个在后台使用LibSass的JavaScript库。


在服务器上

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

在后台,Node-sass本身使用LibSass。


在浏览器中

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.