プロジェクトで AngularJS を使用しています。ここで、ASP.NET のバンドルおよび縮小機能を使用して、すべての JS ファイルを 1 つのバンドルにバンドルしたいと考えています。そのため、グーグルで調べた後、独自の実装を作成する必要があることがわかりました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();