在ASP.NET中使用SASS

Guð*_*r H 98 css asp.net sass

我正在研究如何在ASP.NET环境中使用Ruby HAML包中的SASS(Syntactically Awesome StyleSheets).理想情况下,我希望将SASS文件编译成CSS,使其成为构建过程的无缝部分.

这种整合的最佳方法是什么?或者,是否有其他CSS生成工具更适合.NET环境?

Eti*_*nne 41

为了在Visual Studio中获得更好的工作体验,您可以安装最新版本的Web Essential,它开始支持Sass(SCSS语法).
或者,您可以安装Sassy StudioWeb Workbench.

然后在ASP.NET项目中编译.sass/.scss文件,有一些不同的工具:通过Web Essential,Web Workbench,SassC,Sass.Net,Compass,SassAndCoffee ......


Web Essential是Visual Studio的一个功能齐全的插件,它真正为所有前端内容提供了更好的体验.最新版本开始支持Sass(SCSS语法).在内部,它使用Libsass将SCSS编译为CSS.


Web Workbench是Visual Studio的另一个插件,它添加了语法高亮,intellisence和一些其他有用的东西来编辑SCSS文件.它还可以将您的代码编译为普通或缩小的CSS.在内部,它使用了Ruby Sass编译器的包装版本.


Sassy Studio:Visual Studio的另一个插件.功能较少,但更轻.


Libsass库是C++的萨斯CSS预编译器(开发中仍然)的端口.原始版本是用Ruby编写的,但这个版本是为了提高效率和可移植性.该库力求轻松,简单,易于构建,并与各种平台和语言集成.

Libsass库周围有几个包装器:

  • SassC:命令行编译器(在Windows上,您需要使用MsysGit编译SassC的源代码以获取sassc.exe).
  • NSass:一个.Net包装器.
  • Node-Sass:在Node.js上使用Libsass.
  • 等等

Compass是Sass的一个框架,它添加了许多有用的帮助程序(比如图像spriting),也可以编译你的SCSS/Sass.但是您需要在需要编译样式的每个开发环境中安装Ruby.


SassAndCoffee是一个通过一些DLL和配置添加SCSS/Sass编译和缩小支持的软件包.它优于Web Workbench编译器,它是Visual Studio解决方案中的自包含:您不需要在每个开发环境中安装插件.备注:SassAndCoffee不经常更新,因为它使用IronRuby来包装官方Ruby编译器,所以可能会遇到一些性能问题.您可以通过 Nuget包安装最新版本.


chr*_*ein 26

指南针项目有一个编译器,可以将你的sass编译为css.它是为在Windows上运行而构建的,但在该平台上没有经过良好测试.如果您发现任何与平台相关的错误,我很乐意帮您修复它们.

指南针可以在这里找到:http://github.com/chriseppsein/compass


Phi*_*tts 24

在2015年,我目前的建议是使用Node.js(服务器端Javascript平台)和gulp.js(任务运行程序节点包),以及gulp-sass(用于实现libsass的gulp的节点包- Ruby SASS的快速C端口).

您可以开始使用这样的教程.

喜欢捆绑?Bundle Transformer现在最终使用libsass,实现高速编译.

这就是为什么我认为你应该使用Node和Gulp.

  • 节点现在很受欢迎前端工具
    许多Web开发人员现在正在使用Node作为前端Web开发任务的平台.无论是Grunt,Gulp,JSPM,Webpack还是别的什么 - 它现在都在npm发生.
    你可以用npm包做的事情:
    • 使用Sass,Less,PostCSS等编译样式
    • 连接Javascript,CSS,HTML模板等
    • 编写其他版本的JS并将ES6-7,Typescript,Coffeescript转换为ES5
    • 从本地SVG文件创建图标字体
    • 缩小js,css,SVG
    • 优化图像
    • 拯救鲸鱼
    • ...
  • 新开发的项目更简单的设置
    一旦你建立你的项目package.jsongulpfile.js所有它通常需要得到运行的是以下几个步骤:
    • 下载并安装Node.js.
    • 运行npm install -g gulp (全局安装gulp)
    • 运行npm install (在本地安装项目包)
    • 运行gulp taskname (根据您设置gulpfile.js任务名称的方式将运行编译SASS,Javascript等的任务)
  • Visual Studio 2015支持
    信不信你,VS2015现在可以为您处理所有命令行内容!

在工作流程方面,您有几个典型的选择:

  • 让开发人员将编译后的代码提交到存储库.
    缺点:开发人员必须始终运行gulp或类似编译生产就绪资产

  • 您的构建|阶段|生产服务器在发布之前运行gulp任务
    这种方式设置起来可能更复杂,但意味着工作已经过验证,并且是从未编译的源构建的.

以下是我2012年的旧答案,为后人保留:

来自使用Ruby,Python和C#.NET的项目领先的前端开发人员,我有以下想法:

Sass&LESS

我更喜欢在新项目中使用[Sass] [1],特别是使用精彩的[Compass框架] [2].Compass是一项伟大的工作,为我的流程增添了很多价值.Sass有一个很棒的社区,OK文档和强大的功能集.Sass是一个Ruby库.

Sass的另一种选择是[LESS] [3].它具有类似的语法和功能,但是更小的社区和更好的文档.少了一个JS库.

从趋势的角度来看,随着时间的推移,人们倾向于向Sass发展,因为它很发达,甚至支持CSS Level 4功能.但LESS仍然完全可用,并且很容易增加足够的价值以保证使用它.

在ASP.NET项目中使用Sass/LESS

虽然我更喜欢使用Sass,但让Ruby/Sass与.NET项目一起工作可能会很痛苦,因为它很难设置,异常,并且会让开发人员感到沮丧.

你有几个选择:

  • Sass:原生Ruby + Sass
    • 专业版:最快的服务器编译
    • Pro:能够使用最新版本的Sass
    • 骗局:起床和跑步非常麻烦
    • Con:每台服务器或工作站都需要设置ruby
    • Con: Harder for .NET开发人员解决Ruby /集成问题
  • Sass:Ruby .NET端口,如[IronRuby] [5] + Sass
    • Pro: SLOW服务器编译(Frontend Devs会抱怨!)
    • Pro:可能无法使用最新版本的Sass
    • Pro:比Native Ruby更容易设置
    • Con:每台服务器或工作站都需要设置ruby
    • Con: Harder for .NET开发人员解决Ruby /集成问题
  • Sass:用[BundleTransformer] [7] + Sass扩展[.NET Bundling] [8]
    • Pro :(使用IronRuby)SLOW服务器编译(Frontend Devs会抱怨!)
    • Pro :(使用IronRuby)可能无法使用最新版本的Sass
    • Pro :(使用IronRuby)比Native Ruby更容易设置
    • Con:每台服务器或工作站都需要设置ruby
    • Con: Harder for .NET开发人员解决Ruby /集成问题
  • Sass或LESS:Visual Studio插件,如[Mindscape Workbench] [4]
    • 专业:易于上手
    • 亲:快速编译
    • Con:每个使用Sass样式的开发人员都需要一个IDE插件
    • Con:无法快速更改服务器上的样式 - 需要本地重新处理
  • 少:像[DotLessCSS] [6]这样的.NET端口
    • Pro:快速服务器编译
    • Pro:非常容易设置
    • Pro:对C#.NET开发者来说很舒服
    • Pro:无IDE /工作站/服务器要求 - 将其包含在Web应用程序本身中
    • Con:没有SASS/Compass的多功能性,并不能始终保证最新的LESS.JS语法兼容性
  • Sass:使用[Vagrant]虚拟化linux + Ruby [9]
    • 亲:设置不像你想象的那么可怕
    • 亲:快!!
    • Pro:最新的前端工具(Sass,Compass等),用linux包管理器更新
    • Con:对于非Linux用户来说,初始设置可能很困难
    • Con:环境要求现在涉及托管VM
    • Con: VM可能存在可伸缩性/维护问题

在我看来,由于上述原因,使用[DotLessCSS] [6]的LESS是典型Web开发项目的最佳选择.

几年前,我发现[DotLessCSS] [6]有令人讨厌的错误和限制,但是在2012年的一些项目中再次使用[DotLessCSS] [6],我对设置非常满意.我没有通过使用Sass/Ruby向我的开发人员介绍痛苦,并从LESS获得大部分价值.最重要的是,没有IDE或工作站要求.

[1]:http://sass-lang.com/ [2]:http : //compass-style.org/ [3]:http://lesscss.org/ [4]: http:// www. mindscapehq.com/products/web-workbench [5]:http: //www.ironruby.net/ [6]:http://www.dotlesscss.org/ [7]:http: //bundletransformer.codeplex.com / [8]:http: //weblogs.asp.net/scottgu/archive/2011/11/27/new-bundling-and-minification-support-asp-net-4-5-series.aspx [9]:http://www.vagrantup.com/


Gir*_*ish 13

我刚刚编写了一个Visual Studio加载项,其中包含详细说明,包括如何让Sass用于Visual Studio的截图.在这里查看 - http://giri.sh/2011/01/21/sass-for-visual-studio-2010/


Owe*_*wen 11

它不是SASS,但你可以看看我们的Less Css for .NET端口.Compass看起来真的很有趣,我觉得Less之类的东西会是一个很好的补充.


Dan*_*yon 5

我昨天刚刚发现这个,它看起来很有希望,除了sass/scss之外它还将处理JS(不是CSS)的自动化和文件组合.有一件事我希望有人在那里创建一个VS插件来编辑sass/scss文件.我发现有问题的是,当你的sass/scss代码出错时,你只会发现它正在测试或检查生成的CSS文件.我没有全力以赴,但到目前为止还不错.

https://github.com/xpaulbettsx/SassAndCoffee