1

我在我的项目中使用 AngularJS。现在我想使用 ASP.NET 的捆绑和缩小功能将我所有的 JS 文件捆绑到一个包中。所以经过一番谷歌搜索后,我发现我需要创建自己的IBundleBuilder. 不幸的是,它对我来说并不顺利......这是我的代码:

public class CustomBundleBuilder : IBundleBuilder
{

    public string BuildBundleContent(Bundle bundle, BundleContext context, System.Collections.Generic.IEnumerable<BundleFile> files)
    {
        StringBuilder result = new StringBuilder();
        foreach (var file in files)
        {
            var parser = new Microsoft.Ajax.Utilities.JSParser(this.ReadFile(file));
            parser.Settings.LocalRenaming = LocalRenaming.KeepAll;
            result.Append(parser.Parse(parser.Settings).ToCode());
            result.Append(";");
        }
        return result.ToString();
    }

    private String ReadFile(BundleFile file)
    {
        var fileStream = file.VirtualFile.Open();
        using (var sr = new StreamReader(fileStream))
        {
            return sr.ReadToEnd();
        }
    }
}

我哪里做错了?

笔记:

  • 我不想使用AngularJS优化器。
  • 我正在使用库BundleTransformer,它工作正常,直到它开始导致我无法解决的问题。所以我决定编写自己的解决方案。

更新:事实证明我的代码是正确的并且做了它应该做的事情。但我只需Transforms要从我的脚本包中清除:

scriptBundle.Transforms.Clear();
4

0 回答 0