0

在 yeoman 应用程序中,我的所有脚本都被缩小并压缩到单个文件中,但是所有“组件”都按原样复制,这是一个荒谬的 - 因为它是启动项目中的 ~130 个文件......我相信这是负责连接任务,问题是如何让它包含我在 index.html 文件中提到的组件?文件对象的参数是什么?在文档中找不到任何内容。

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

1 回答 1

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>.

于 2013-06-17T13:50:31.427 回答