2016-08-26 11 views
0

私のアプリケーションのファイルをバンドルして縮小するには、.NETバンドルとミニフィニッシュの機能を使用しています(これは他のツールを使用するのが難しく、このための解決策を探しています)。は.NETの縮小化でマングリングしない可能性がありますか?

私はangularファイル、typescriptからコンパイルされたファイル、およびjavascriptファイルを細分化しようとしています。

問題は、私がアプリケーションを実行すると、ほとんどがangularに関連するいくつかのjavascriptの例外があるということです。私はそれが有用ではないと思うけど、多分それは助けることができるので、これは私が得る主な例外です:私はちょうどそれらを束ねた場合

Error: [$injector:unpr] Unknown provider: tProvider <- t <- highChartSeriesMappingService http://errors.angularjs.org/1.5.5/ $injector/unpr?p0=tProvider%20%3C-%20t%20%3C-%20highChartSeriesMappingService [Rest of the exception trace][...]

と何の縮小化、私のファイルは、この命令myScriptBundle.Transforms.Clear()を設定することで、それが正常に動作しません。明らかに、このアクションは、変数、クラス、...名前のマングリングも回避します。

私はgruntとそのプラグインgrunt-contrib-uglifyを使用してバンドルして縮小しました。

 uglify: { 
      options: { 
       preserveComments: false 
      }, 
      myScript: { 
       files: { 
        'myScript.min.js': conf.myScript 
       } 
      } 
     } 

confが縮小化するファイルのURLをjsonファイルへの参照である:初めに私は、以前のようにので、私は仕事のために使用される基本的な構成の同じ問題を抱えていました。しかし、私は偽(here you have more info about it)へmangleプロパティを設定する場合:それはあまりにも正常に動作します

 uglify: { 
      options: { 
       preserveComments: false, 
       mangle: false 
      }, 
      myScript: { 
       files: { 
        'myScript.min.js': conf.myScript 
       } 
      } 
     } 

を。それは、私が、問題の根源をいくつかのクラスのmanglingという名前にしています。

ご覧のとおり、gruntを使用して解決策に達しましたが、.NETでマングリングを回避する方法を探したいと思います。何か案が?

+1

私はあなたの問題をAngularJsを最小限に抑えることで解決していると思いますが、安全な使い方に従わなければならない角度との衝突を避けるためにいくつかの練習があります。https://www.sitepoint.com/5-minutes-to-min-safe-angular-code -with-grunt/ –

+0

@AbdelrhmanMohamedあなたのコメントに投稿したリンクを読みましたが、配列構文を使ってすべての角度コードを書いていますが、他の開発者と共有されているプロジェクトでは、依存配列の挿入は文字列配列では行われませんでした。だから、いくつかのクラスをチェックして修正した後、.NETを使った細分化が機能しています。 – christiansr85

答えて

1

@AbdelrhmanMohamedの投稿を読み、プロジェクトのファイルをもう一度チェックしたところ、angularとその配列sytntaxに関連する問題であることがわかりました。いくつかのファイルには、配列文字列を介した依存性の注入が欠けていました。そのため、最小化されたファイルや、

要約すると、.NET bndlingとminificationプロセスは正常に動作しているようです。角を持って作業する場合、他のモジュールに依存するすべてのクラスが定義された依存関係を持つ配列文字列を持っていることを確認してください。

関連する問題