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/**']
ですか? 助言がありますか?