に二つのターゲットを設定することができます。 またclean
タスク(1ターゲットはbuild2
フォルダをきれいにbuild
フォルダと別のターゲットをきれいにする)に2つの目標を設定することができます。
Gruntfile.js
あなたGruntfile.js
尻として、次のように構成することができます。
module.exports = function(grunt) {
var saveLicense = require('uglify-save-license');
grunt.initConfig({
// The 'clean' task now includes two targets.
// named 'build1' and 'build2'
clean: {
build1: {
src: ['build']
},
build2: {
src: ['build2']
}
},
// The 'copy' task now includes two targets.
// named 'src1' and 'src2'
copy: {
src1: {
cwd: 'src',
src: '**/*',
dest: 'build',
expand: true
},
src2: {
cwd: 'src2',
src: '**/*',
dest: 'build2',
expand: true
}
}
// ...
});
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-clean');
// Registering the Targets in the Tasks....
grunt.registerTask('copySrc1', ['copy:src1']);
grunt.registerTask('cleanBuild1', ['clean:build1']);
grunt.registerTask('copySrc2', ['copy:src2']);
grunt.registerTask('cleanBuild2', ['clean:build2']);
grunt.registerTask('copyBoth', ['copy']);
grunt.registerTask('cleanBoth', ['clean']);
};
は兵卒タスクを実行 あなたは6つのコールがあることに気づくでしょう.registerTask(...)
はスニペットの最後に機能します。すなわち、 copySrc1
,cleanBuild1
,copySrc2
,cleanBuild2
,copyBoth
およびcleanBoth
。
彼らはあなたのコマンドラインを経由して次のコマンドを実行することができます:
$ grunt copySrc1
(これはbuild
フォルダにsrc
フォルダをコピーします)
$ grunt cleanBuild1
(これはbuild
フォルダをきれいにします)
$ grunt copySrc1
(これはbuild2
フォルダにsrc2
フォルダをコピーします)
(これはbuild2
フォルダをきれいにします)
$ grunt copyBoth
(これはbuild
フォルダにsrc
フォルダをコピーしてbuild2
フォルダにsrc2
フォルダをコピーします)
$ grunt cleanBoth
(これは両方build
とbuild2
フォルダをきれいにします)
ノート
次のようにあなたはおそらく唯一の2つの.registerTask(...)
の機能を維持する必要があり:
grunt.registerTask('copyBoth', ['copy']);
grunt.registerTask('cleanBoth', ['clean']);
しかし、私は他のfo ur .registerTask(...)
は、セミコロンの表記法(:
)を使用してタスク内で単一のターゲットを呼び出す方法を示しています。たとえば:
grunt.registerTask('copySrc1', ['copy:src1']);
上記のスニペットで['copy:src1']
部分は単にcopy
タスク内src1
という名前だけターゲットを実行します。
一方:
grunt.registerTask('copyBoth', ['copy']);
...がcopy
タスク内の任意のターゲットを参照していない(すなわちセミコロン表記は使用されません)、すべてのターゲットが実行されます。
タスク、目標をさらに理解するには、このpostへの私の答えを読むことができます。
希望に役立ちます!