本文整理匯總了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.`,
);
}
});
}