Concat Minified files&使用Grunt跳过缩小

时间:2014-01-27 09:18:01

标签: angularjs gruntjs bundling-and-minification grunt-usemin grunt-contrib-concat

目前我在写一个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 -->

这很好用。但我面临的两个主要问题是......

  1. Angular显示错误“Uncaught error [$ injector:modulerr] ..
  2. 似乎Usemin也在再次缩小文件。
  3. 我还尝试了第二个选项,只需将这些文件合并,即绕过缩小步骤,避免使用Usemin ..仍然是同样的错误

    请指导

2 个答案:

答案 0 :(得分:0)

Angular使用称为依赖注入的东西来解析你的参数。 Angular通过其名称知道每个对象是什么。

&#34; $范围&#34;将被初始化为范围对象,因为它被命名为&#34; $ scope&#34;。在usemin之后,这个变量将被称为其他东西,比如&#34; a&#34;,以节省字节。 Angular不知道&#34; a&#34;是,并抛出一个错误。

你可以这样解决这个问题:

  1. 在这里阅读有关角度应用程序的缩小 http://docs.angularjs.org/tutorial/step_05

  2. 在运行uglify之前,请手动关注指南或使用 ngmin 处理。

  3. 希望这有帮助!

答案 1 :(得分:0)

你可以通过两种方式解决这个问题。
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']
    }]
  },
}
相关问题