本文整理汇总了TypeScript中promisify-child-process.spawn函数的典型用法代码示例。如果您正苦于以下问题:TypeScript spawn函数的具体用法?TypeScript spawn怎么用?TypeScript spawn使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了spawn函数的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: Error
}, _ => {
const args = [
"-jar", coursierPath,
"fetch",
"-p",
artifact
].concat(extra)
const coursierProc = pcp.spawn("java", args)
let classPath = ""
coursierProc.stdout.on('data', (data: Buffer) => {
classPath += data.toString().trim()
})
coursierProc.stderr.on('data', (data: Buffer) => {
let msg = data.toString().trim()
outputChannel.appendLine(msg)
})
coursierProc.on('close', (code: number) => {
if (code != 0) {
let msg = `Couldn't fetch '${ artifact }' (exit code ${ code }).`
outputChannel.appendLine(msg)
throw new Error(msg)
}
})
return coursierProc.then(() => { return classPath })
})
示例2: fetchWithCoursier
fetchWithCoursier(coursierPath, sbtArtifact).then((sbtClasspath) => {
sbtProcess = pcp.spawn("java", [
"-Dsbt.log.noformat=true",
"-classpath", sbtClasspath,
"xsbt.boot.Boot"
], {
cwd: workspaceRoot
})
// Close stdin, otherwise in case of error sbt will block waiting for the
// user input to reload or exit the build.
sbtProcess.stdin.end()
sbtProcess.stdout.on('data', data => {
outputChannel.append(data.toString())
})
sbtProcess.stderr.on('data', data => {
outputChannel.append(data.toString())
})
})
示例3: lernaPublishAsync
async function lernaPublishAsync(packageToVersionChange: { [name: string]: string }) {
// HACK: Lerna publish does not provide a way to specify multiple package versions via
// flags so instead we need to interact with their interactive prompt interface.
const child = spawn('lerna', ['publish', '--registry=https://registry.npmjs.org/'], {
cwd: constants.monorepoRootPath,
});
let shouldPrintOutput = false;
child.stdout.on('data', (data: Buffer) => {
const output = data.toString('utf8');
if (shouldPrintOutput) {
utils.log(output);
}
const isVersionPrompt = _.includes(output, 'Select a new version');
if (isVersionPrompt) {
const outputStripLeft = output.split('new version for ')[1];
const packageName = outputStripLeft.split(' ')[0];
let versionChange = packageToVersionChange[packageName];
const isPrivatePackage = _.isUndefined(versionChange);
if (isPrivatePackage) {
versionChange = 'patch'; // Always patch updates to private packages.
}
const semVerIndex = semverNameToIndex[versionChange];
child.stdin.write(`${semVerIndex}\n`);
}
const isFinalPrompt = _.includes(output, 'Are you sure you want to publish the above changes?');
if (isFinalPrompt && !IS_DRY_RUN) {
child.stdin.write(`y\n`);
// After confirmations, we want to print the output to watch the `lerna publish` command
shouldPrintOutput = true;
} else if (isFinalPrompt && IS_DRY_RUN) {
utils.log(
`Submitted all versions to Lerna but since this is a dry run, did not confirm. You need to CTRL-C to exit.`,
);
}
});
}