【问题标题】:"Web Compiler" compile on save not working“Web 编译器”在保存时编译不工作
【发布时间】:2022-03-02 16:23:33
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: visual-studio sass web-compiler


    【解决方案1】:

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

    %localappdata%\temp\WebCompiler1.xx
    

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

    希望这对某人有所帮助!

    【讨论】:

    【解决方案2】:

    很遗憾,此处提供的解决方案不起作用。看来我并不孤单。

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

    如果您将 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 文件,这是一个巨大的附带好处。

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        更新到 VS 2017 版本 15.9.5 后 用 save 编译对我不起作用。 我可以右键单击 scss 文件并进行编译,但再次嵌套的 css 未编译。 似乎更新 Visual Studio 是个问题。

        您也可以卸载网络编译器并使用compilesass

        您可以从here下载

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

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

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

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

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

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

            您也可以通过右键单击.scss文件,单击“Web编译器”菜单,然后单击“Enable compile at build”自动添加它,它将添加缺少的引用。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-01-24
              • 2011-09-11
              • 1970-01-01
              • 2016-08-11
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多