私は空白になっているか、そうあるべきだったよりも複雑です。
grunt-init
次のような Grunt タスクから実行しようとしています。
grunt.registerTask('init', 'Scaffold various artifacts', function(param) {
// analyze `param` and pass execution to `grunt-init`
// run `grunt-init path/to/some/template/based/on/param/value`
});
の分析の部分param
は、もちろん、問題ではありません。それが実行されてgrunt-init
います。
grunt-init
以下の試行と同じフォルダーで直接実行すると、正常に動作します。
次の方法を試しました(コードを短くするためにテンプレートへのパスがインライン化されています)が、すべて役に立ちませんでした:
イサキの殻
shell: {
init: {
options: {
stdout: true,
callback: function(err, stdout, stderr, cb) {
...
}
},
command: 'grunt-init path/to/some/template/based/on/param/value'
}
}
その後:
grunt.registerTask('init', 'Scaffold various artifacts', function(param) {
grunt.task.run(['shell:init']);
});
コマンドラインで:
grunt init
またはコマンドラインから直接:
grunt shell:init
うなり声-exec
exec: {
init: {
cmd: 'grunt-init path/to/some/template/based/on/param/value',
callback: function() {
...
}
}
}
その後:
grunt.registerTask('init', 'Scaffold various artifacts', function(param) {
grunt.task.run(['exec:init']);
});
コマンドラインで:
grunt init
またはコマンドラインから直接:
grunt exec:init
ノードのexec
grunt.registerTask('init', 'Scaffold various artifacts', function(param) {
var exec = require('child_process').exec;
exec('grunt-init path/to/some/template/based/on/param/value', function(err, stdout, stderr) {
...
});
});
コマンドラインで:
grunt init
何もない。
さまざまな試みがありましたが、grunt-init
プロンプトの最初の行を出力するのが最善でした:
Running "init" task
以上です。
私は何が欠けていますか?どうにかして接続する必要がありましたstdout
か?