まず、Gruntの設定ファイル(通常はGruntfile.js)内で、grunt-exec
パッケージをインストールし、タスクを定義します。
// Gruntfile.js
module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-exec');
grunt.initConfig({
exec: {
myCommand: 'echo Hello, Grunt!'
}
});
grunt.registerTask('myTask', ['exec:myCommand']);
};
上記の例では、grunt-exec
パッケージを使用して、echo Hello, Grunt!
コマンドを実行するタスクを定義しています。このタスクはmyTask
という名前で登録されています。
次に、ターミナルで以下のコマンドを実行してGruntタスクを実行します。
grunt myTask
これにより、指定したコマンドが実行されます。もちろん、myCommand
に実行したい任意のコマンドを設定することができます。
さらに、Gruntのタスク内で実行されるコマンドが非同期である場合、コールバック関数を使用する必要があります。以下に例を示します。
// Gruntfile.js
module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-exec');
grunt.initConfig({
exec: {
myAsyncCommand: 'npm install'
}
});
grunt.registerTask('myTask', function() {
var done = this.async();
grunt.util.spawn({
cmd: 'npm',
args: ['install'],
opts: { stdio: 'inherit' }
}, function(error, result, code) {
if (error) {
grunt.log.error('Command failed.');
} else {
grunt.log.writeln('Command executed successfully.');
}
done();
});
});
};
上記の例では、非同期のコマンドであるnpm install
を実行するタスクを定義しています。grunt.util.spawn
メソッドを使用してコマンドを実行し、コールバック関数内で結果を処理しています。
これらの方法を使用することで、Gruntタスク内でコマンドを実行することができます。必要に応じて、さまざまなコマンドやオプションを使用してタスクをカスタマイズすることができます。