1

現在、Grunt Build ファイルを作成しています。「usemin」を使用する HTML で 3 つのブロックを作成し、3 つのファイル assets.min.js 、 lib.min.js などを作成します。

<!-- build:js js/assets.min.js --> 
<script type="text/javascript" src="app/assets/js/lib/angular.min.js"></script> 
<script type="text/javascript" src="app/assets/js/lib/angular-cache.min.js"></script> 
<script type="text/javascript" src="app/assets/js/lib/angular-route.min.js"></script> 
<script type="text/javascript" src="app/assets/js/lib/angular-animate.min.js"></script> 
<script type="text/javascript" src="app/assets/js/lib/angular-touch.min.js"></script> 
<script type="text/javascript" src="app/assets/js/lib/angular-cookies.min.js"></script> 
<script type="text/javascript" src="app/assets/js/lib/jquery-1.10.1.min.js"></script>
<script type="text/javascript" src="app/assets/js/lib/jqueryui.min.js"></script>
<script type="text/javascript" src="app/assets/js/lib/bootstrap.min.js"></script> 
<script type="text/javascript" src="app/assets/js/lib/bootstrap-switch.min.js"></script> 
<!-- endbuild -->

これはうまくいきます。しかし、私が直面している2つの大きな問題があります...

  1. Angular はエラー "Uncaught error [$injector:modulerr]..
  2. Usemin もファイルを再び縮小しているようです。

これらのファイルを連結するだけで、つまりUseminを回避する縮小ステップをバイパスすることにより、2番目のオプションも試しました..それでも同じエラー

ガイドしてください

4

2 に答える 2

0

Angular は依存性注入と呼ばれるものを使用して引数を解決します。Angular は、各オブジェクトがその名前で何であるかを認識します。

「$scope」は「$scope」という名前であるため、スコープ オブジェクトとして初期化されます。usemin の後、バイトを節約するために、この変数は "a" などの別の名前になります。Angular は "a" が何であるかを認識せず、エラーをスローします。

これは次のように解決できます。

  1. angular アプリの縮小については、こちらをご覧ください http://docs.angularjs.org/tutorial/step_05

  2. 手動でガイドに従うか、 uglify を実行する前にngminプロセスを使用してください。

お役に立てれば!

于 2014-01-27T22:37:05.343 に答える
0

これは2つの方法で解決できます。
1. usemin ブロックで非圧縮ファイルを使用する

<!-- build:js js/assets.min.js -->
<script type="text/javascript" src="app/assets/js/lib/angular.js"></script>
<script type="text/javascript" src="app/assets/js/lib/angular-cache.js"></script> 
<script type="text/javascript" src="app/assets/js/lib/angular-route.js"></script> 
<script type="text/javascript" src="app/assets/js/lib/angular-animate.js"></script> 
<script type="text/javascript" src="app/assets/js/lib/angular-touch.js"></script> 
<script type="text/javascript" src="app/assets/js/lib/angular-cookies.js"></script> 
<script type="text/javascript" src="app/assets/js/lib/jquery-1.10.1.js"></script>
<script type="text/javascript" src="app/assets/js/lib/jqueryui.js"></script>
<script type="text/javascript" src="app/assets/js/lib/bootstrap.js"></script>
<script type="text/javascript" src="app/assets/js/lib/bootstrap-switch.js"></script>
<!-- endbuild -->


2. grunt タスクを使用してスクリプトをコピーする

copy:{
  scripts:{
    files:[{
      expand: true, 
      cwd:'<%= config.app %>',
      dest: '<%= config.tmp %>', src: ['app/assets/js/lib/**/*.min.js']
    }]
  },
}
于 2014-10-21T07:56:34.893 に答える