我在我的项目中使用 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();