yeoman:如何压缩组件?

时间:2013-06-17 11:31:06

标签: gruntjs yeoman

在yeoman应用程序中,我的所有脚本都被缩小并压缩成单个文件,但所有"组件"复制是荒谬的 - 因为它在启动项目中是〜130个文件... 这个我相信的是负责连接任务,问题是如何使它包含我在index.html文件中提到的组件?文件对象有哪些参数?无法在文档中找到任何内容。

 concat: {
      dist: {
        files: {
          '<%= yeoman.dist %>/scripts/scripts.js': [
            '.tmp/scripts/{,*/}*.js',
            '<%= yeoman.app %>/scripts/{,*/}*.js'
          ]
        }
      }
    },

1 个答案:

答案 0 :(得分:1)

我认为你要找的是grunt-usemin

当您添加组件时,可以将<script>标记包装在<!-- build:js js/foo.js -->中。

    <!-- build:js js/main.js -->
    <script src="js/carousel.js"></script>
    <script src="js/index.js"></script>
    <!-- endbuild -->

包中包含的useminPrepare任务将循环遍历该块中的任何脚本,并将它们添加到concat / uglify任务中。您的任务列表可能包含以下内容:

useminPrepare: {
  html: [ '<%= yeoman.dist%>.html' ],
  options: {
    uglify: 'uglify'
  }
},

usemin: {
  html: [ '<%= yeoman.dist%>.html' ],
  options: {
    basedir: 'dist'
  }
},

输出到您的foo.html将是您在构建注释中指定的任何内容。在我的例子中,脚本被连接,缩小,并且对它们的引用被替换为<script src="js/main.js"></script>