如何在Visual Studio 2013中使用Sass [关闭]


72

如何在Visual Studio 2013中使用Sass CSS预处理器?是否有任何扩展可为Sass提供支持?



7
现已宣布针对VS2013 Update 2的SASS支持,该版本在撰写本文时已在Community Tech Preview中。
Zhaph-Ben Duguid 2014年

4
如果你想知道,这个问题正在讨论元堆栈溢出
user692942 '16

Answers:


86

Visual Studio 2013更新2

Visual Studio 2013 Update 2对SCSS和LESS文件均具有本机语法支持。您可以创建SCSS或LESS文件,并查看这些文件类型的语法突出显示和智能提示。 但是,它不提供编译方法。

这是博客的链接,其中介绍了新功能:

我们在VS2013 RTM中添加了LESS,现在我们有了一个SASS项目项和编辑器。SASS编辑器功能可与LESS编辑器媲美,包括着色,变量和Mixins智能感知,注释/取消注释,快速信息,格式,语法验证,概述,转到定义,颜色选择器,工具选项设置等。

请注意: 此更新似乎仅支持较新的SassyCSS语法。我尝试使其与较早的缩进SASS语法一起使用没有任何成功。

汇编

  • Web Essentials。这是一个很棒的工具,可以为您完成所有“艰巨”的工作。Web Essentials的较新版本可用于Visual Studio 2013 Update 3、4和5。
  • 另一个仅处理编译的免费软件是CompileSASS,它也可以在VS2015中使用。
  • 另外,您可以使用MindScape的WebWorkbench,这是一个很棒的工具,具有许多不错的功能。有一个免费版本可以满足您的需要,但还有一个付费版本,它的功能要全面得多(但我认为考虑到更好的免费替代方案会有点太贵了)。

Visual Studio 2015

不幸的是,对于那些转向Visual Studio 2015的人来说,仍然没有对SASS和LESS编译的本机支持。不幸的是,Web Essentials也将不再支持编译。网络基础(克里斯滕森的Mads)的作者解释作出这一决定的原因在这里

这是可以处理编译的扩展列表:

WebCompiler(免费)

Mads Kristensen(Web Essentials的作者)创建了一个名为Web Compiler的独立编译工具。您所要做的就是安装它,然后右键单击要编译的任何SASS文件,然后选择“ Web编译器”>“编译文件”。从那时起,将对其进行监视并随时对其进行保存,将对文件进行编译。

下载Web编译器

CompassSASS(免费)

与Web编译器类似,这是一个独立的扩展,它被创建为可在VS2013VS2015中使用,因为从流行的Web Essentials扩展中删除了编译。它是轻量级的,并且通过出色的错误报告可以很好地完成工作。在此处阅读有关扩展的作者博客。

下载编译SASS

Web工作台(免费/付费)

多年来,在编译SASS时,Mindscape的Web Workbench是我最喜欢的扩展,但是从那以后,我就不再使用免费的替代程序了。Pro版本仍然是一个功能强大的工具,可以通过多种方式来自定义输出文件,但考虑到那里提供免费工具,它也相当昂贵(39美元)。

下载Web WorkBench


Visual Studio程式码

确实与上述相同,它通过语法高亮和Intellisense对SASS和LESS具有本机支持,但缺少编译功能。

上面列出的所有编译器都可以使用,但是如果您要手动设置编译,则可以参考以下指南:

https://code.visualstudio.com/Docs/languages/css


4
您确定它支持SASS吗?据我所知,VS2013Update2仅支持SCSS语法和编译
PW Kad

1
我同意,看来VS 2013 Update 2可能仅支持SCSS(Sassy CSS)。但是,对于Sass(语法上很棒的StyleSheets)初学者来说,值得注意的是,SCSS是使用Sass的语法(最新)。因此支持Sass,但可能仅支持较新的SCSS语法,而不支持较旧的“ Sass语法”。
奥拉·卡尔森

3
我创建了一个测试项目,并使用.SASS扩展名创建了一个文件(用于旧语法),它无法识别它,并且不应用语法突出显示。我尝试在SCSS文件中使用SASS语法,这一次出现编译错误。它看起来好像不支持旧的SASS语法,但确实支持新的Sassy CSS。
克里斯·斯皮茨

@PWKad它似乎不支持编译。您仍然需要第三方插件
geedubb 2015年

1
我花了一个小时的时间才能使旧的SASS(与新的SassyCSS语法相对)能够顺利编译。帮助我的一件事是该网站sasstoscss.com,我在其中将代码转换为较新的语法。我希望至少有一个插件仍然支持旧语法。
Dan M

53

对于寻求此问题答案的其他任何人,我发布此邮件是为了节省您的时间,因为某些答案有些过时了。

在Visual Studio 2013中处理一个小型Web项目时,我想第一次使用SASS。我进行了一些挖掘,发现VS 2013 Update 2发行时具有对SASS(.scss)文件的本机支持。

经过更多的挖掘,并且没有使用SASS的经验,我安装了Web Essentials 2013 for Update 2,该版本用于编译和生成相应的.css文件。

即便如此,我仍然不清楚如何将它们捆绑在一起,但是这篇博客文章在首次解释所有内容方面做得很好。

博客中的摘录(贷方为​​@akatakritos)

  1. Visual Studio 2013提供了添加SASS文件的功能(.scss
  2. 安装Web Essentials 2013更新2
  3. .scss向您的项目添加一个新文件,例如styles.scss
  4. 更新styles.scss,保存,它将自动styles.css在该.scss文件下生成一个文件
  5. 然后,您可以像常规.css文件一样捆绑或链接它

2015年7月更新:

在更高版本的Web Essentials中,即:2014年11月12日更新的版本2.5,已删除了SASS编译器。

备用编译器:


@akatakritos只是为了让您知道我将您的博客链接到了这篇文章。
Tanner 2014年

如何使用VS2013 + WebEssentials支持来处理存在混合文件和其他组件化程度更高的scss文件,但全部编译为主要scss的文件夹结构?
Thiago Silva

2
Web要素对我不起作用。有时它可以工作,有时似乎存在SCSS编译错误,但是它不显示任何消息。
伊桑·里索

2
VS2013的Web Essentials支持SASS转换。我正在使用最新版本2.6.36。我相信仅对2015版停止支持。
pauloya 2015年

1
为了使VS2015企业版能够正常运行,我必须首先下载并安装[ visualstudiogallery.msdn.microsoft.com/…,然后安装[ visualstudiogallery.msdn.microsoft.com/… 故事:然后,我重新启动VS2015,它的工作。最初,通过NuGet软件包管理器下载Web编译器后,重新启动VS2015,它无法加载/工作或将“ compilerconfig.json”添加到我项目的根目录。下载并安装Web Analyzer之后,它可以工作了。同一位作家...
埃里克·米利奥特·马丁内斯

12

我没有使用Chripy,但您也可以尝试其他几种选择。

  1. 我最喜欢的在Visual Studio中使用Sass的扩展是Mindscape的Web Workbench。它具有很好的集成性,可与Visual Studio 2013一起使用,甚至还支持Compass。如果使用Less或CoffeeScript,它也会照顾好它们。我也和一位开发人员聊天,他的反应非常友好,这在我的书中是一个很大的优势。哦,我听说还有更多很棒的事情正在酝酿之中。
  2. SassyStudio是另一种可能性,但是当我尝试它时,它似乎没有Web Workbench强大。
  3. 它尚未发布,但请关注Web Essentials。目前,它仅在CSS预处理器方面支持LESS,但对Sass的支持已收到大量请求,程序经理回答说“开发正在进行中。” 希望不久!

最后一个选择和我经常使用的选择只是使用外部工具监视我的SASS文件,在后台编译它们,然后让Visual Studio在编译CSS文件时重新加载它们。

通过命令行安装Ruby和SASS,并告诉它监视项目目录中的更改可以很好地工作-但我很喜欢Prepros这种事情。

我还没有尝试全部,但ScoutKoalaLiveReloadCompass.appFire.app也是类似的选项。

尽管这些并非总是适用于每个项目的正确解决方案,但它们为您提供了很多灵活性和成熟度,而您在Visual Studio扩展中不一定会找到这些灵活性和成熟度。

希望对您有所帮助!


6
截至2014年3月:现在已包含在Web Essentials VS2013 Update 2 CTP 2中
nitech 2014年

我真的很喜欢Mindscape的产品。.但是,随着新PC的安装,我可以尝试Web Essentials。
广告

不久前我做了一点Sencha Touch工作时,我就为sass文件安装了Ruby和一些自动处理工具,但我真的不喜欢它。当时它还不错,而且行得通,但是我希望将所有开发人员都集中在一个地方。VS是一个非常好的工作环境,因此为什么要使用外部处理工具。另外,如果您不需要Ruby,那么为什么要安装它。
广告

如果您真的很喜欢Visual Studio,那么绝对不应该坚持集成解决方案,尤其是现在这些选择已经真正成熟。但是我不是VS的忠实拥护者,因此我只在绝对需要的时候使用它,我更愿意使用外部解决方案和Sublime Text。
克里斯汀·怀特

5

要在Visual Studio中编译SCSS,请安装CompileSass Visual Studio Extension。

不幸的是,Web Essentials不再支持编译Sass

我认为这很可悲,因为它绝对是从Visual Studio编译Sass的最简单方法。我创建了一个行为相同的新Visual Studio扩展。您只需安装扩展名,保存时它将自动将.scss文件编译为压缩的.min.css文件。

CompileSass


据我了解,它仍将支持Sass的编译,只是使用Visual Studio的编译器?
约瑟夫·伍德沃德

我不这么认为。Web Essentials的作者(Mads Kristensen)为Microsoft工作,他的建议是切换到Grunt / Gulp,后者使用其工具来编译Sass(Ruby,对吗?)。因此,以上扩展提供了无需其他依赖项即可编译Sass的功能。
山姆·鲁比

到目前为止,这是如何在Visual Studio中编译SCSS的最佳答案。该扩展程序很好用,很容易安装。
格雷格·古姆

3

对于ASP.NET,有两种与SASS集成的方法。Chripy是一个常见的插件,您希望将其安装在Visual Studio中作为扩展。
从而进行设计时编译,您可以在http://chirpy.codeplex.com/中找到有关chripy的更多信息,
以及可以通过Nuget安装的另一个软件包:

install-package SassAndCoffee

谢谢,但是我认为ChripySupprot VS2013不是吗?
Hamed mayahian 2013年

您确定可以在VS 2013中工作吗?
Hamed mayahian 2013年

我不知道Chripy,但在2013年VS第二个工作
Sirwan阿菲菲

2

我写了一篇有关该主题的博客文章,我认为这可能会对其他人有所帮助。基本上支持SCSS,但不支持SASS扩展。

http://pwkad.wordpress.com/2014/05/30/using-scss-in-visual-studio-2013-with-web-essentials-starring-compass-and-susy/

也要小心,因为我在编译Compass时遇到了一些问题,例如指南针/ css3 / images文件中存在中断错误。


您是否能够解决Compass问题?另外,您是否尝试过集成波旁威士忌,如果可以,它的工作效果如何?
杰森·弗兰克

1

我的评论可能没有用,因为人们可能已经有了答案,但是Scout可用于Windows :),自2013年3月以来我一直在我的项目中使用。

您可以使用功能强大的Mixture,并创建CSS和JS文件的缩小版本。


1

我认为Web Essentials扩展-我假设每个Web开发人员都在运行,并且是本地VS IDE支持的先驱-具有SCSS编译支持,但我认为它仅适用于VS2013 Update 2,该版本仍处于CTP中这次。


不。Web Essentials与VS2013 Update 2 CTP(2014.04.23)不兼容,并且Update 2本身具有对SCSS文件的本地支持。
Daniel Leiszen 2014年

1
UPDATE:WebEssentials 2.0 RC去与VS 2013更新2
丹尼尔Leiszen


0

如果有MVC 6,可以使用gulp。原始来源:http : //developer.telerik.com/featured/css-preprocessing-with-visual-studio/

在添加NPM依赖package.json

{
  "name": "ASP.NET",
  "version": "0.0.0",
  "devDependencies": {
    "gulp": "3.8.11",
    ...
    "gulp-sass": "2.2.0",
  },
  "dependencies": {
    "gulp-sass": "^2.2.0"
  }
}

然后在gulpfile.js

var gulp = require("gulp"),
    ...
    sass = require("gulp-sass");


paths.js = paths.webroot + "js/**/*.js";
...
paths.sass = paths.webroot + "css/**/*.scss";
paths.cssOutput = paths.webroot + "css";


gulp.task('sass', function () {
    gulp.src(paths.sass)
        .pipe(sass().on('error', sass.logError))
        .pipe(gulp.dest(paths.cssOutput));
});

最后,在Task Runner Explorerright-click你的新任务sass,然后Bindings再选择After Build


-3

在Visual Studio 2013 SP 4中,添加SCSS文件并在每次保存时进行同步都没有问题。同步失败时,我感到困惑,我发现问题出在定义变量之前。SCSS文件未显示任何错误,但同步失败。

这适用于同步:

$body-main: 45px;
body {
    padding-top: $body-main + 25px;
    padding-bottom: $body-main - 5px;
}

这不适用于同步

body {
    padding-top: $body-main + 25px;
    padding-bottom: $body-main - 5px;
}
$body-main: 45px;

在第二种情况下,没有错误和智能感知,但是同步失败。


这与配置Visual Studio有什么关系,以便它可以编译Sass(这就是问题所在)?
cimmanon 2015年

这不是关于在Visual Studio中编译Sass,似乎是重复的问题!
QMaster
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.