2014-09-13 47 views
2

我正在关注这个SO回答How to include scripts automatically in a yeoman/grunt project?如何通过usemin插件包含脚本文件夹中的所有js文件。在我添加了grunt-include-source插件后,usemin无法用正确的concated +缩小脚本替换生成的脚本块,只会删除该块或仅填充源标签。Grunt-include-source + usemin不能一起工作

在index.html的来源是如此:

<!-- build:js(.) scripts/vendor.js --> 
<!-- bower:js --> 
<!-- endbower --> 
<!-- endbuild --> 

<!-- build:js({.tmp,app}) scripts/scripts.js --> 
<!-- include: "type": "js", "files": "scripts/**/*.js" --> 
<!-- endbuild --> 

繁重-包括源和咕噜-wiredep之后是代码,因为这:

<!-- build:js(.) scripts/vendor.js --> 
<!-- bower:js --> 
<script src="bower_components/es5-shim/es5-shim.js"></script> 
<script src="bower_components/angular/angular.js"></script> 
<script src="bower_components/json3/lib/json3.js"></script> 
<script src="bower_components/angular-resource/angular-resource.js"></script> 
<script src="bower_components/angular-cookies/angular-cookies.js"></script> 
<script src="bower_components/angular-route/angular-route.js"></script> 
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script> 
<!-- endbower --> 
<!-- endbuild --> 

<!-- build:js({.tmp,app}) scripts/scripts.js --> 
<script src="scripts/app.js"></script> 
<script src="scripts/controllers/about.js"></script> 
<script src="scripts/controllers/company/list.js"></script> 
<script src="scripts/controllers/dashboard/main.js"></script> 
... more ... 
<!-- endbuild --> 

我使用grunt-wiredep插件,在grunt-include-source之后和grunt-usemin之前运行,此代码被正确替换。

输出应该是:

<script src="scripts/vendor.1e81ad0a.js"></script> 
<script src="scripts/scripts.1e82ad0a.js"></script> 

但仅仅是:

<script src="scripts/vendor.1e81ad0a.js"></script> 

<!-- build:js({.tmp,app}) scripts/scripts.js --> 
<script src="scripts/app.js"></script> 
<script src="scripts/controllers/about.js"></script> 
<script src="scripts/controllers/company/list.js"></script> 
<script src="scripts/controllers/dashboard/main.js"></script> 
... more ... 
<!-- endbuild --> 

有谁对这个问题的任何解决方案?

由于提前, 米哈尔

+1

我找到了解决此问题的解决方法。我拒绝使用grunt-include-source插件并将其替换为[grunt-file-blocks](https://github.com/rrharvey/grunt-file-blocks/)。这与grunt-usemin完美配合。 – 2014-09-15 06:45:08

回答

1

在任务:“复制:DIST”言论的HTML的副本,以便良好的index.html(includesource运行后)不会得到与在index.html覆盖应用再次

copy: { 
     dist: { 
     files: [{ 
      expand: true, 
      dot: true, 
      cwd: '<%= yeoman.app %>', 
      dest: '<%= yeoman.dist %>', 
      src: [ 
      '*.{ico,png,txt}', 
      '.htaccess', 
      //'*.html', 
      'views/{,*/}*.html', 
      'images/{,*/}*.{webp}', 
      'fonts/*' 
      ] 
     }