我目前在Yeoman生成器中使用以下内容,并且工作正常。
const install = () => {
return new Observable( observer => {
const child = spawn('yarn', ['add', '--dev', 'autoprefixer'], { cwd: targetDir });
child.stdout.on('data', data => {
observer.next(data.toString().trim());
});
child.stderr.on('data', (data) => {
observer.next(data.toString().trim());
});
child.on('close', code => {
observer.complete();
});
});
};
上面的代码的问题在于它仅在用户安装了Yarn时才起作用。由于Yeoman已经内置support for Yarn,因此我更愿意使用它:
yarnInstall(pkgsopt, optionsopt, spawnOptionsopt)
但是,我不确定如何像在工作脚本中那样将yarnInstall
的输出进行管道传输。我认为它与方法的最后一个参数有关,该方法支持所有spawn
options。