Skip to content
Permalink
Browse files

fix(bazel): Directly spawn native Bazel binary (#30306)

Instead of launching a Node.js process that in turn spawns Bazel binary,
the Builder could now directly spawn the native binary. This makes the
bootup process slightly more efficient, and allows the Builder to
control spawn options. This works with both Bazel and iBazel.

PR Close #30306
  • Loading branch information...
kyliau authored and alxhub committed May 7, 2019
1 parent fac0044 commit d1fcc2bc132b6a2854681a12f76d38b64d78929d
@@ -8,7 +8,7 @@

/// <reference types='node'/>

import {fork} from 'child_process';
import {spawn} from 'child_process';
import {copyFileSync, existsSync, readdirSync, statSync, unlinkSync} from 'fs';
import {dirname, join, normalize} from 'path';

@@ -24,7 +24,7 @@ export function runBazel(
projectDir = normalize(projectDir);
binary = normalize(binary);
return new Promise((resolve, reject) => {
const buildProcess = fork(binary, [command, workspaceTarget, ...flags], {
const buildProcess = spawn(binary, [command, workspaceTarget, ...flags], {
cwd: projectDir,
stdio: 'inherit',
});
@@ -51,12 +51,12 @@ export function runBazel(
*/
export function checkInstallation(name: Executable, projectDir: string): string {
projectDir = normalize(projectDir);
const packageName = `@bazel/${name}/package.json`;
const packageName = `@bazel/${name}`;
try {
const bazelPath = require.resolve(packageName, {
paths: [projectDir],
});
return dirname(bazelPath);
return require(bazelPath).getNativeBinary();
} catch (error) {
if (error.code === 'MODULE_NOT_FOUND') {
throw new Error(
@@ -23,6 +23,8 @@ build --incompatible_strict_action_env
run --incompatible_strict_action_env
test --incompatible_strict_action_env

build --incompatible_bzl_disallow_load_after_statement=false

test --test_output=errors

# Use the Angular 6 compiler
@@ -48,8 +48,8 @@ function addDevDependenciesToPackageJson(options: Schema) {

const devDependencies: {[k: string]: string} = {
'@angular/bazel': angularCoreVersion,
'@bazel/bazel': '^0.24.0',
'@bazel/ibazel': '^0.10.1',
'@bazel/bazel': '^0.25.1',
'@bazel/ibazel': '^0.10.2',
'@bazel/karma': '0.27.12',
'@bazel/typescript': '0.27.12',
};

0 comments on commit d1fcc2b

Please sign in to comment.
You can’t perform that action at this time.