27

Asp.Net MVC4 のバンドルと縮小機能が js ファイルを縮小する方法をカスタマイズする方法はありますか?

つまり、縮小化を完全にオフにしたくはありませんが、「そのまま」では AngularJs が壊れるだけです。

AngularJs はコントローラーにサービスを注入するために DI および IoC アプローチを使用するため、次のようになります。

function MyController($scope) { }

縮小すると、次のようになります。

function MyController(n) { }

通常は問題ありませんが、AngularJs はパラメーター名を使用して、挿入するサービスを認識します。したがって、$scope は、角度コントローラーの他のパラメーターと同様に、$scope のままにする必要があります。ローカル変数などの他のすべては、通常どおり縮小する必要があります。

Mvc4 の縮小化を構成する方法に関する明確なドキュメントが見つかりません。「すべてかゼロか」というのはかなりばかげているように見えるので、何かが欠けていると思います。

ありがとう。

4

3 に答える 3

46

実際には、AngularJS コードを書くことができます (またそうすべきです)。詳細はhttp://docs.angularjs.org/guide/diの「Dependency Annotation」セクションに記載されていますが、要するに、グローバルに定義されたコントローラーの場合は、次のように記述できます。

MyController.$inject = ['$scope'];

グローバルに定義されたコントローラーはグローバル名前空間を汚染しているため (詳細はこちらを参照)、避ける必要があることに注意してください。モジュール レベルでコントローラーを宣言すると、ミニフィケーション セーフにすることもできます。

angular.module('mymodule', []).controller('MyController', ['$scope', function($scope){
//controller code goes here
}]);
于 2013-02-16T11:07:04.630 に答える
1

何を縮小するか、何を縮小しないかを制御したい場合 (または、プラグイン ベンダーによって既に縮小されているバージョンを含めたい場合) は、2 つのバンドルを宣言し、そのうちの 1 つだけを BundleConfig.cs で縮小します。

var dontMinify = new Bundle("~/bundles/toNotMinify").Include(
                        "~/Scripts/xxxxx.js");
bundles.Add(dontMinify);

var minify = new Bundle("~/bundles/toNotMinify").Include(
                        "~/Scripts/yyyyyy.js");
minify.Transforms.Add(new JsMinify());
bundles.Add(minify);
于 2013-02-16T14:34:20.570 に答える