Gruntタスク_grunt-contrib-copy
_をインストールしました。 _Gruntfile.js
_に埋め込み、grunt.loadNpmTasks('grunt-contrib-copy');
を介してタスクをロードします。
現在、次の構成を使用して、jsファイル/フォルダーのサブセットでフォルダーを作成しています。
_copy: {
options: {
processContent: [],
processContentExclude: ['build/**', 'bin/**', '.*', '*.orig', '*.bak', '.*/**', '*.log', 'dist/**', 'test/**', 'dev/**', 'pyserver/**', 'node_modules/**', 'doc/**']
},
du: {
files: [
{src: ['.conf1', '.conf2', './config.js'], dest: 'output/toolkit/', filter: 'isFile'},
{src: ['./css/**/*', './img/**/*', './js/**/*', './release/**/*', './lib/**/*', './locale/**/*'], dest: 'output/toolkit/'},
{expand: true, cwd: './', src: ['**'], dest: 'output/'}
]
}
}
_
これは正常に機能しますが、Grunt Copyを実行するたびに次のエラーメッセージが表示されて終了します。
_Copying Gruntfile.js -> output/Gruntfile.js
Warning: Error while processing "Gruntfile.js" file. Use --force to continue.
_
_Gruntfile.js
_および_*.less
_内のすべての_js/**/*
_ファイルを除外したいと思います。 !(.less), !.less, !(*.less), !(./Grunfile.js), !(*Gruntfile.js)
で試してみました...しかし、何も機能しません。 processContentExclude
配列に追加しましたが、成功しませんでした。
それでは、_Gruntfile.js
_とフォルダー構造_js/**/*
_内のすべてのファイルを除外するにはどうすればよいですか?
ソリューションを見つけました:
これらの行は必要ありません。
files: [
{src: ['.conf1', '.conf2', './config.js'], dest: 'output/toolkit/', filter: 'isFile'},
{src: ['./css/**/*', './img/**/*', './js/**/*', './release/**/*', './lib/**/*', './locale/**/*'], dest: 'output/toolkit/'},
{expand: true, cwd: './', src: ['**'], dest: 'output/'}
]
{expand: true, cwd: './', src: ['**'], dest: 'output/'}
は新しいコピーステップであり、./
からoutput
にすべてのファイルをコピーするためです。上記の行はすでに必要なファイルをoutput/toolkit
にコピーしているため、これは必要ありません。
そのため、次の2行で仕事をします。オプションなどは必要ありません。 *.less
ファイル'!**/*.less'
を締め出すことは仕事をします。
files: [
{src: ['.conf1', '.conf2', 'config.js'], dest: 'output/toolkit/', filter: 'isFile'},
{src: ['css/**', 'img/**', 'js/**', 'release/**', 'lib/**', 'locale/**', '!**/*.less'], dest: 'output/toolkit/'}
]
私はコピー内のすべての.gzファイルを除外したかったのですが、このオプションはすべてのフォルダーに対してジョブを実行しました
{
expand: true,
cwd: './build/www/',
src: [ '**', '!**/*.gz' ],
dest: './mydDest'
}
試してみてください!**/*.less, !gruntfile.js
(括弧なし)
別のGruntタスクに変更する自由がある場合:
https://github.com/clavery/grunt-copy-to もあります。これには、除外するファイルとディレクトリを指定する明示的な「無視」オプションがあります。 GithubのREADMEは、無視オプションを含む設定例を示しています。
変更時間を尊重するため、通常のコピーとは少し異なります。しかし、それは実際には歓迎されるかもしれません(私の場合はそうでした)。
READMEから:
Grunt-contrib-copyと似ていますが、新しいファイルのみをコピーし、コピーされたファイルの変更時間を維持します。ファイルの変更時間に依存するツールを使用して後で同期できるビルドディレクトリを作成するのに便利です。
(私はそのプロジェクトのユーザーのみです(少なくともこれまで)。)
これでうまくいくと思います。 /**/*
は必要ありません。 /**
は、パスとそのサブディレクトリ内のすべてのファイルをカバーします
{src: ['./css/**', './img/**', './js/**', './release/**', './lib/**', './locale/**'], dest: 'output/toolkit/'},
{expand: true, cwd: './', src: ['**'], dest: 'output/'}