UPDATE:
私はNPMパッケージgulp-interactiveを発表しました。
だけでそれをインストールします。
npm install --save-dev gulp-interactive
そしてgulpfile.js
でそれを使用します。
require('gulp-interactive')();
次にシェルで:
$ gulp prompt
ORIGINAL ANSWER:
を
特別なグループタスクprompt
を実装しました。 まずinquirerインストール:
npm install --save-dev inquirer
それは、私たちはタスク名を入力するように開発を依頼することができます便利なパッケージです。
gulp.task('prompt', function (cb) {
var promptedTask;
function startPrompt() {
promptedTask = undefined;
gulp.start('prompt');
}
function onTaskEnd(event) {
setTimeout(function() {
if (event && promptedTask && event.task === promptedTask) {
gulp.removeListener('task_stop', onTaskEnd);
gulp.removeListener('task_err', onTaskEnd);
gulp.removeListener('task_not_found', onTaskEnd);
startPrompt();
}
});
}
gulp.on('task_stop', onTaskEnd);
gulp.on('task_err', onTaskEnd);
// replace gulp default listener for 'task_not_found' because it calls process.exit(1)
gulp.removeAllListeners('task_not_found');
gulp.on('task_not_found', function (err) {
console.log('Task \'' + err.task + '\' is not in your gulpfile');
onTaskEnd(err);
});
var inquirer = require('inquirer');
inquirer.prompt([{ type: 'input', name: 'task', 'message': 'Enter gulp task name:' }])
.then(function (answers) {
promptedTask = answers.task || 'prompt';
cb();
gulp.start(promptedTask);
});
});
今、あなたはgulp prompt
を実行してプロンプトを起動することができます。
次のタスクを実行します。 この最適化を使用すると、Docker for Macコンテナ内でWebアプリケーションのビルド時間が50秒から15秒に短縮されました(ファイルシステムの動作が遅いと考えられます)。私のMacでビルドを直接実行すると、ビルド時間が13秒から6秒に短縮されました。