4

複数のファイルにまたがるcoffeescriptコードを同じ名前の.jsファイルにコンパイルするための面倒なタスクを作成しようとしています。私は grunt coffeescript プラグインを持っており、このページにある "glob_to_multiple" 仕様を使用しようとしています:

https://www.npmjs.org/package/grunt-contrib-coffee .

 glob_to_multiple: {
    expand: true,
    flatten: true,
    cwd: 'path/to',
    src: ['*.coffee'],
    dest: 'path/to/dest/',
    ext: '.js'
  },

ただし、この単調なタスクは、ディレクトリとそのサブディレクトリ内のすべての .coffee ファイルについて、.coffee ファイルを対応する名前の .js ファイルにコンパイルしません。しばらくの間、この設定を微調整してきましたが、これを行うことができません。助けてください。

4

2 に答える 2

7

パターンは、フォルダー内の*.coffeeで終わるファイルのみに一致します。パターンは、および自体のすべてのサブフォルダー内で、で終わるすべてのファイルに再帰的に一致します。.coffeecwd**/*.coffee.coffeecwdcwd

次の構成を試してください。

glob_to_multiple: {
  expand: true,
  flatten: true,
  cwd: 'path/to',
  src: ['**/*.coffee'],
  dest: 'path/to/dest/',
  ext: '.js'
},

すべてのファイルを単一のフォルダーにコンパイルするのではなくflatten: true、フォルダー構造を再作成する場合も削除します。path/to/dest/

于 2014-05-27T15:37:23.757 に答える
2

カイルによって提供された受け入れられた答えは、あなたが達成したいこととは正反対です!

希望どおりに機能させるには、 を設定するだけですdest: path/to。必ずflatten: falseフラグを設定してください。

以下の例では、それを機能させることができます

coffee: {
  glob_to_multiple: {
      expand: true,
      flatten: false,
      cwd: '',
      src: ['server/api/**/*.coffee', 'client/app/**/*.coffee'],
      dest: '',
      ext: '.js',
      extDot: 'last'
  }
}

配列には、src:[]クロールしたいルート/サブディレクトリを入れることができます。また、概念実証として、node_modules ディレクトリを含むプロジェクト全体をクロールするcwd: ''こともできます。dest: ''すべての js ファイルは、対応するコーヒーのオリジンがある場所とまったく同じ場所に作成されます。のextDot: 'last'ようなファイルmyUnitTest.spec.coffeeも適切に処理されるようにします。

于 2015-04-17T09:08:32.083 に答える