3

ルートフォルダから新しい初期化されたプロジェクトに空のディレクトリをコピーしたいと思います。これを実行して、新しいプロジェクトの初期ディレクトリ構造を提供します。

'my-template / root /'フォルダにそのような空のディレクトリがありますが、それは次の方法でコピーされません。

    // Files to copy (and process).
    var files = init.filesToCopy(props);

    // Actually copy (and process) files.
    init.copyAndProcess(files, props);

私はこれを試しました:

    // to copy also the empty directories
    init.copy('myDir1/');
    init.copy('myDir2/');

しかし、grunt-initがクラッシュするよりも:

Error: Unable to read "grunt-init-example/root/myDir1/" file (Error code: EISDIR).

空のディレクトリを宛先フォルダに移動するには、どうすればよいですか?

私はgrunt@0.4.0とgrunt-init@0.2.0を使用しています。

4

3 に答える 3

3

Nick Mitchinsonの回答に触発されて、私はこの回避策を使用します。

// module dependencies
var join = require("path").join;
// empty directories will not be copied, so we need to create them manual
grunt.file.mkdir( join(init.destpath(), 'myDir1') );
grunt.file.mkdir( join(init.destpath(), 'myDir2') );

アップデート:

.gitkeep別の解決策は、空のディレクトリにファイルを追加することです。ディレクトリが空でなくなり、filesToCopy()で一覧表示されます。

詳細については、https.gitkeep: //stackoverflow.com/a/7229996/496587をご覧ください。

于 2013-03-14T08:34:21.413 に答える
2

この記事を見てみてください

ディレクトリの作成に関連する部分は次のとおりです。

var root = path.normalize(__dirname+"/relative/path/you/want");
grunt.file.mkdir(root);

しかし、全体を読むことはおそらく良いでしょう。

于 2013-03-13T17:53:04.550 に答える
0

コピーしたい空のフォルダ内に空の__empty_file.txtファイルを作成します。template.jsファイル内で、次のことを行います。

  1. init.filesToCopy(props)によって返されたファイルオブジェクトを配列に反復処理することにより、( __ empty_file.txt )と一致するファイルを保存します。
  2. 上記の配列の各項目に対してgrunt.file.mkdirを使用してディレクトリを作成し、 init.filesToCopyによって返されたファイル参照からこのファイルを削除します。これは、init.copyAndProcessを呼び出す前に呼び出す必要があります。
于 2013-11-25T01:46:06.253 に答える