9

我正在使用 Web 编译器,但它不会编译我的 SASS 结构,除非我右键单击“compilerconfig.json”并选择“Web-compiler”->“重新编译所有文件”。

当我使用其他方法触发编译时...

  • 当我保存 SCSS 文件时(最重要)
  • 当我进入菜单“构建”->“重新编译解决方案中的所有文件”时
  • 当我使用短命令 Shift + Alt + Y

它会告诉我“编译成功”或“完成编译”,但是文件没有更新。

我正在使用 Visual Studio 2015 v.3 和 Web 编译器 2016 年 8 月 2 日更新,版本 1.11.319。

4

6 回答 6

9

在论坛中找到了答案。我只需要删除一些临时文件并重新启动 Visual Studio:

%localappdata%\temp\WebCompiler1.xx

论坛帖子: https ://github.com/madskristensen/WebCompiler/issues/158

希望这对某人有帮助!

于 2016-09-02T08:27:55.877 回答
1

可悲的是,这里提供的解决方案不起作用。似乎我并不孤单。

万一它对其他人有帮助,我发现了另一种解决方法,这似乎提供了额外的好处。

如果您将 Razor 视图添加到您的项目(我将其命名JsHelper.cshtml并添加到 中\Views\Shared)并使用以下内容(添加了额外的换行符以使其适合 SO 宽度)...

@model string
@{
  string ext = HttpContext.Current != null
               && HttpContext.Current.Request.Url.Host.Contains("localhost")
    ? ""
    : ".es5.min";
}
<script src="/Scripts/@Model@(ext).js" type="text/javascript"></script>

...然后,而不是像这样添加脚本标签...

<script src="/Scripts/General.es5.min.js" type="text/javascript"></script>

...你可以添加这个...

@Html.Partial("~/Views/Shared/JsHelper.cshtml", "General")

当您在 Visual Studio 中运行网站时,将使用未编译版本的 Javascript 文件。当在其他任何地方(例如在生产服务器上)运行时,.es5.min.js将使用该版本。

由于发布 Web 项目涉及构建它,它将编译 .js 文件,因此您可以确信发布的已编译和缩小文件是最新的。

这样做的好处是,在浏览器中调试脚本时,您可以访问.js文件的完整版本,而不是直接引用它们时获得的编译和缩小版本。由于最新版本的 Web 编译器中发生的另一个重大变化是它们在编译时不再生成.map.js文件,这是一个巨大的附带好处。

希望这可以帮助。

于 2017-06-14T18:04:00.697 回答
0

在解决此问题时,我发现此扩展有时已“自动”禁用。我确定这不是我做过的事情,但 Visual Studio 中可能有一种机制会定期禁用扩展。只是另一件事要检查。

于 2018-04-06T15:44:13.293 回答
0

更新到 VS 2017 版本 15.9.5 后,使用保存编译对我不起作用。我可以右键单击 scss 文件并编译,但嵌套的 css 再次未编译。似乎更新视觉工作室是问题所在。

或者,您可以卸载 Web 编译器并使用compilesass

你可以从这里下载

于 2019-01-26T18:47:06.320 回答
0

如果您最近安装了新的 Visual Studio,请确保重新安装 WebCompiler 扩展。扩展 > 管理扩展

于 2021-11-30T22:11:16.817 回答
0

这适用于 VS2022,我不知道其他版本,但它也可能是相关的。

我有一个项目,当从 projet 或单个文件中单击“重新编译文件”时,css 生成工作正常,但在构建或保存 .scss 时不会自动生成。

要使其正常工作,该项目必须引用以下 nuget 包

<ItemGroup>
    <PackageReference Include="BuildWebCompiler2022" Version="1.14.4" />
    ....
<ItemGroup>

当然,确切的版本可能取决于您阅读此消息时可用的内容。

您也可以通过右键单击 .scss 文件来自动添加它,单击“Web 编译器”菜单,然后单击“在构建时启用编译”,它将添加缺少的引用。

于 2022-03-02T08:23:33.940 回答