目标之间的共享选项和运行多个目标

时间:2014-03-22 15:44:36

标签: coffeescript gruntjs

我对咕噜有点困惑。首先,我爱上了这个工具,但是文档(或者也许只是我)对此并不是很聪明。

所以我有这样的事情:

coffee:
  options:
    sourceMap: true
    files: [{
      expand: true
      cwd:    '<%= yeoman.app %>/scripts'
      src:    '{,*/}*.coffee'
      dest:   '<%= yeoman.tmp %>/scripts'
      ext:    '.js'
    }]
  test:
    files: [{
      expand: true
      cwd:    '<%= yeoman.app %>/scripts'
      src:    '{,*/}*.coffee'
      dest:   '<%= yeoman.tmp %>/scripts'
      ext:    '.js'
    }, {
      expand: true
      cwd:    '<%= yeoman.test %>/spec'
      src:    '{,*/}*.coffee'
      dest:   '<%= yeoman.tmp %>/spec'
      ext:    '.js'
    }]

我认为这在理论上应该有&#34;分享&#34;目标与#34; dev&#34;,&#34; dist&#34;之间的文件和&#34;测试&#34;有自定义的。

但是,根据我的理解,files不应该留在选项中(为什么?)。
我也有这个:

compass:
  all:
    options:
      sassDir:                 '<%= yeoman.app %>/styles'
      cssDir:                  '<%= yeoman.tmp %>/styles'
      generatedImagesDir:      '<%= yeoman.tmp %>/images/generated'
      imagesDir:               '<%= yeoman.app %>/images'
      javascriptsDir:          '<%= yeoman.app %>/scripts'
      fontsDir:                '<%= yeoman.app %>/fonts'
      importPath:              [
        '<%= yeoman.app %>/bower_components'
        '<%= yeoman.app %>/styles'
      ]
      httpImagesPath:          '/images'
      httpGeneratedImagesPath: '/images/generated'
      httpFontsPath:           '/fonts'
      httpStylesheetsPath:     '/styles'
      httpJavascriptsPath:     '/scripts'
      relativeAssets:          true
      assetCacheBuster:        false
      bundleExec:              true
      raw: 'Sass::Script::Number.precision = 10\n'
  dist:
    options:
      environment:        'production'
      generatedImagesDir: '<%= yeoman.dist %>/images/generated'

但是运行grunt compass运行 grunt compass:allgrunt compass:dist这是正常行为吗?

我绝对需要对此有更好的解释。

1 个答案:

答案 0 :(得分:1)

任务配置中的第一级可以是&#34; sub&#34; -task。

所以你可以通过以下方式调用它:

grunt compass

grunt compass:all

grunt compass:dist

当你没有引用子任务时,grunt会运行给定主任务的所有子任务。 (因此第一个运行alldist

否则,您可以在配置中引用其他部分&#39;&lt;%= ...%&gt;&#39;符号。详情:http://gruntjs.com/api/grunt.config