1

プロジェクトで 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();
4

0 に答える 0