2

Grunt でいくつかのファイルをコピーするためのテンプレートを使用しようとしています。現在、私は持っています:

/*global module:false*/
module.exports = function(grunt) {

  var fs = require('fs');
  var path = require('path');
  // Project configuration.
  grunt.initConfig({
    // Metadata.
    pkg: grunt.file.readJSON('package.json'),

    libSrc: ['foo/**'],

    // Task configuration.
    copy: {
        libs: {
                src: ["<%= libSrc %=>"],
                dest: 'src/'
        }

    }
  });

  // These plugins provide necessary tasks.
  grunt.loadNpmTasks('grunt-contrib-concat');
  grunt.loadNpmTasks('grunt-contrib-jshint');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-less');
  grunt.loadNpmTasks('grunt-contrib-copy');
  grunt.loadNpmTasks('grunt-dojo');
  grunt.loadNpmTasks('grunt-bless');


  // Default task.
  grunt.registerTask('default', ['jshint']); 

};

私のディレクトリ構造は次のとおりです。

.
./.Gruntfile.js.swp
./src
./src/foo
./src/foo/oops.js
./node_modules
./package.json
./foo
./foo/oops.js
./Gruntfile.js

Grunt を実行すると、次のようになります。

grunt copy
Running "copy:libs" (copy) task


Done, without errors.

つまり、何もコピーされません。

テンプレートを実際の配列に置き換えてみましたが、正しく動作します。libSrc問題は、この Gruntfile の後のイテレーションで他のタスクでの値を変更するので、テンプレートを使用する必要があるということです。

基本的な grunt ドキュメントは、これがサポートされているアプローチであることを示しています。特にhttp://gruntjs.com/configuring-tasks#templatesのサンプルです。

それで、私はここで何か不足していますか?テンプレートが に展開されないのはなぜ['foo/**']ですか? 助言がありますか?

4

1 に答える 1