4

Gruntで個人用テンプレートのカスタムinit タスクを作成しようとしています。

これは、新しいプロジェクトを生成する js です。grunt init:mytemplate

exports.description = 'Try Grunt';
exports.warnOn = '*';

exports.template = function(grunt, init, done) {
  grunt.helper('prompt', {type: 'skin'}, [
    grunt.helper('prompt_for', 'name', 'trygrunt'),
    grunt.helper('prompt_for', 'title', 'Im Trying GruntJS'),
    grunt.helper('prompt_for', 'author_name', 'Myself')
  ],
  function(err, props) {
    var files = init.filesToCopy(props);
    init.copyAndProcess(files, props);
    done();
  });
};

すべて正常に動作します。ファイルとフォルダーは、情報rootに基づいてカスタム テンプレートのフォルダーから正しく生成または名前変更されます。rename.json

問題は、ファイルだけでなくフォルダーの名前を動的に変更するにはどうすればよいですか?

すなわち

{
    "libs/name.js": "libs/{%= name %}.js" //this works fine
    "src/name": "src/{%= name %}" //this doesn't work
}
4

3 に答える 3

3

このinit.filesToCopyメソッドはrenames.json、最初にオブジェクトをビルドするときに、特定のファイル(ディレクトリではなく)の一致のみを調べfilesます。最善の策は、とのfiles間のオブジェクトをプログラムで変更することです。init.filesToCopyinit.copyAndProcess

于 2012-08-07T19:25:47.740 に答える
0

これを達成し、フォルダーの名前を変更できないという制限を回避する別の方法は、1) grunt-contrib-copy タスクをセットアップしてフォルダーとファイルをコピーし、必要な名前を新しいフォルダー/ファイルに適用することです。次に、2) grunt-contrib-clean タスクを使用して古いファイル/フォルダーを一掃し、フォルダーの名前を変更するのと同じ正味の効果が得られます。

于 2012-10-12T04:29:32.337 に答える