0

我正在使用出色的BundleTransformer Nuget 包来使用 ASP.NET 捆绑和缩小管道动态编译 SCSS。我正在尝试将bootstrap.sass包引入组合中,并不断收到以下错误。此时我的设置非常简单,并且 scss 文件可以使用该node-sass工具编译得很好,如果我删除该@import "bootstrap/bootstrap.scss"行,则 SCSS 可以使用 BundleTransformer 完美编译。有没有人遇到这个问题并可能有解决方案?这是 .NET Framework 4.7.2。谢谢!

BundleConfig.cs

        var nullBuilder = new NullBuilder();
        var styleTransformer = new StyleTransformer();
        var scriptTransformer = new ScriptTransformer();
        var nullOrderer = new NullOrderer();

        var defaultScssBundle = new CustomStyleBundle("~/bundles/styles/default");
        defaultScssBundle.Include(
            "~/Content/Default.scss"
        );
        defaultScssBundle.Builder = nullBuilder;
        defaultScssBundle.Transforms.Add(styleTransformer);
        defaultScssBundle.Transforms.Add(new CssMinify());
        defaultScssBundle.Orderer = nullOrderer;
        bundles.Add(defaultScssBundle);

默认.scss

@import "bootstrap/bootstrap.scss";

/* common styles */
.green {
    color: green;
}

.full-width {
    width: 100%;
}

错误

During translation of SCSS code, readed from the file '/TestProject/Content/bootstrap/_alert.scss', to CSS code syntax error has occurred.
See more details:

Error: Undefined variable: "$alert-padding-y".
       on line 7:12 of Content/bootstrap/_alert.scss
>>   padding: $alert-padding-y $alert-padding-x;
  -----------^

Error code: 1
Description: Undefined variable: "$alert-padding-y".
File: /TestProject/Content/bootstrap/_alert.scss
Line number: 7
Column number: 12
Source fragment:

Line 6:   position: relative;
Line 7:   padding: $alert-padding-y $alert-padding-x;
-------------------^
Line 8:   margin-bottom: $alert-margin-bottom;
4

1 回答 1

0

经过多次试验和错误,我发现了问题。在查看了 Github Repo 中的示例后,我将以下几行内容提取出来,BundleConfig.cs现在一切正常。

defaultScssBundle.Builder = nullBuilder;
defaultScssBundle.Transforms.Add(styleTransformer);
defaultScssBundle.Transforms.Add(new CssMinify());
于 2020-01-24T20:59:46.453 回答