build: add a before-all-other bootstrap script that patches require (#34736)
This removes the churn in the existing bootstrap scripts. PR Close #34736
This commit is contained in:
parent
e0827f2ad5
commit
81f6da173b
|
@ -6,12 +6,6 @@
|
||||||
* found in the LICENSE file at https://angular.io/license
|
* found in the LICENSE file at https://angular.io/license
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// bootstrap the bazel require patch since this bootstrap script is loaded with
|
|
||||||
// `--node_options=--require=$(rlocation $(location script.js))`
|
|
||||||
if (process.env['BAZEL_NODE_RUNFILES_HELPER']) {
|
|
||||||
require(process.env['BAZEL_NODE_RUNFILES_HELPER'] as string).patchRequire();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Needed to run animation tests
|
// Needed to run animation tests
|
||||||
import 'zone.js/lib/node/rollup-main';
|
import 'zone.js/lib/node/rollup-main';
|
||||||
import '@angular/compiler'; // For JIT mode. Must be in front of any other @angular/* imports.
|
import '@angular/compiler'; // For JIT mode. Must be in front of any other @angular/* imports.
|
||||||
|
|
|
@ -6,12 +6,6 @@
|
||||||
* found in the LICENSE file at https://angular.io/license
|
* found in the LICENSE file at https://angular.io/license
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// bootstrap the bazel require patch since this bootstrap script is loaded with
|
|
||||||
// `--node_options=--require=$(rlocation $(location script.js))`
|
|
||||||
if (process.env['BAZEL_NODE_RUNFILES_HELPER']) {
|
|
||||||
require(process.env['BAZEL_NODE_RUNFILES_HELPER'] as string).patchRequire();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Must be loaded before zone loads, so that zone can detect WTF.
|
// Must be loaded before zone loads, so that zone can detect WTF.
|
||||||
import './test_fake_polyfill';
|
import './test_fake_polyfill';
|
||||||
|
|
||||||
|
|
|
@ -13,12 +13,6 @@
|
||||||
* found in the LICENSE file at https://angular.io/license
|
* found in the LICENSE file at https://angular.io/license
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// bootstrap the bazel require patch since this bootstrap script is loaded with
|
|
||||||
// `--node_options=--require=$(rlocation $(location script.js))`
|
|
||||||
if (process.env['BAZEL_NODE_RUNFILES_HELPER']) {
|
|
||||||
require(process.env['BAZEL_NODE_RUNFILES_HELPER'] as string).patchRequire();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Must be loaded before zone loads, so that zone can detect WTF.
|
// Must be loaded before zone loads, so that zone can detect WTF.
|
||||||
import './node-env-setup';
|
import './node-env-setup';
|
||||||
import './test_fake_polyfill';
|
import './test_fake_polyfill';
|
||||||
|
|
|
@ -13,12 +13,6 @@
|
||||||
* found in the LICENSE file at https://angular.io/license
|
* found in the LICENSE file at https://angular.io/license
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// bootstrap the bazel require patch since this bootstrap script is loaded with
|
|
||||||
// `--node_options=--require=$(rlocation $(location script.js))`
|
|
||||||
if (process.env['BAZEL_NODE_RUNFILES_HELPER']) {
|
|
||||||
require(process.env['BAZEL_NODE_RUNFILES_HELPER'] as string).patchRequire();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Must be loaded before zone loads, so that zone can detect WTF.
|
// Must be loaded before zone loads, so that zone can detect WTF.
|
||||||
import './node-env-setup';
|
import './node-env-setup';
|
||||||
import './test_fake_polyfill';
|
import './test_fake_polyfill';
|
||||||
|
|
|
@ -6,12 +6,6 @@
|
||||||
* found in the LICENSE file at https://angular.io/license
|
* found in the LICENSE file at https://angular.io/license
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// bootstrap the bazel require patch since this bootstrap script is loaded with
|
|
||||||
// `--node_options=--require=$(rlocation $(location script.js))`
|
|
||||||
if (process.env['BAZEL_NODE_RUNFILES_HELPER']) {
|
|
||||||
require(process.env['BAZEL_NODE_RUNFILES_HELPER'] as string).patchRequire();
|
|
||||||
}
|
|
||||||
|
|
||||||
process.env['errorpolicy'] = (global as any)['__Zone_Error_BlacklistedStackFrames_policy'] =
|
process.env['errorpolicy'] = (global as any)['__Zone_Error_BlacklistedStackFrames_policy'] =
|
||||||
'disable';
|
'disable';
|
||||||
import './node_error_entry_point';
|
import './node_error_entry_point';
|
||||||
|
|
|
@ -6,11 +6,5 @@
|
||||||
* found in the LICENSE file at https://angular.io/license
|
* found in the LICENSE file at https://angular.io/license
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// bootstrap the bazel require patch since this bootstrap script is loaded with
|
|
||||||
// `--node_options=--require=$(rlocation $(location script.js))`
|
|
||||||
if (process.env['BAZEL_NODE_RUNFILES_HELPER']) {
|
|
||||||
require(process.env['BAZEL_NODE_RUNFILES_HELPER'] as string).patchRequire();
|
|
||||||
}
|
|
||||||
|
|
||||||
process.env['errorpolicy'] = (global as any)['__Zone_Error_BlacklistedStackFrames_policy'] = 'lazy';
|
process.env['errorpolicy'] = (global as any)['__Zone_Error_BlacklistedStackFrames_policy'] = 'lazy';
|
||||||
import './node_error_entry_point';
|
import './node_error_entry_point';
|
||||||
|
|
|
@ -268,11 +268,16 @@ def jasmine_node_test(bootstrap = [], **kwargs):
|
||||||
"@npm//source-map-support",
|
"@npm//source-map-support",
|
||||||
"@npm//tslib",
|
"@npm//tslib",
|
||||||
"@npm//xhr2",
|
"@npm//xhr2",
|
||||||
|
"//tools/testing:bazel_patch_require.js",
|
||||||
]
|
]
|
||||||
configuration_env_vars = kwargs.pop("configuration_env_vars", []) + [
|
configuration_env_vars = kwargs.pop("configuration_env_vars", []) + [
|
||||||
"angular_ivy_enabled",
|
"angular_ivy_enabled",
|
||||||
]
|
]
|
||||||
templated_args = kwargs.pop("templated_args", [])
|
templated_args = [
|
||||||
|
# bazel_patch_require.js must be first
|
||||||
|
# TODO(gregmagolan): remove this once linker has been applied to nodejs_binary targets by default in rules_nodejs
|
||||||
|
"--node_options=--require=$(rlocation $(location //tools/testing:bazel_patch_require.js))",
|
||||||
|
] + kwargs.pop("templated_args", [])
|
||||||
for label in bootstrap:
|
for label in bootstrap:
|
||||||
deps += [label]
|
deps += [label]
|
||||||
templated_args += ["--node_options=--require=$(rlocation $(location %s))" % label]
|
templated_args += ["--node_options=--require=$(rlocation $(location %s))" % label]
|
||||||
|
|
|
@ -2,6 +2,8 @@ load("//tools:defaults.bzl", "ts_library")
|
||||||
|
|
||||||
package(default_visibility = ["//visibility:public"])
|
package(default_visibility = ["//visibility:public"])
|
||||||
|
|
||||||
|
exports_files(["bazel_patch_require.js"])
|
||||||
|
|
||||||
ts_library(
|
ts_library(
|
||||||
name = "browser",
|
name = "browser",
|
||||||
testonly = 1,
|
testonly = 1,
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
/**
|
||||||
|
* @license
|
||||||
|
* Copyright Google Inc. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Use of this source code is governed by an MIT-style license that can be
|
||||||
|
* found in the LICENSE file at https://angular.io/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Load the Bazel Node runfiles helper script and patch the NodeJS module resolution. This is
|
||||||
|
// necessary to ensure that imports are properly resolved in Bazel. By default, the module
|
||||||
|
// resolution is patched in `nodejs_binary` targets when the main script loads, but since we
|
||||||
|
// --require boostrap scripts before the main script, this bootstrap script is loaded first so that
|
||||||
|
// subsequent bootstrap scripts can resolve their imports.
|
||||||
|
//
|
||||||
|
// We're in a valley with the runfiles support right now having removed the `bootstrap` attribute
|
||||||
|
// for rule_nodejs 1.0 but not applied the linker to run targets yet in rules_nodejs. In a near
|
||||||
|
// future rules_nodejs release, the runfiles helper won't be required as standard node module
|
||||||
|
// resolution works with the linker.
|
||||||
|
//
|
||||||
|
// We could have left the `bootstrap` attribute in for 1.0 and removed it for 2.0 but since we had
|
||||||
|
// an alternate approach that we're using here that isn't going to be broken in the future by the
|
||||||
|
// linker being added we decided to pull it for 1.0 so that we have fewer major breaking changes in
|
||||||
|
// 2.0.
|
||||||
|
if (process.env['BAZEL_NODE_RUNFILES_HELPER']) {
|
||||||
|
require(process.env['BAZEL_NODE_RUNFILES_HELPER']).patchRequire();
|
||||||
|
}
|
|
@ -6,12 +6,6 @@
|
||||||
* found in the LICENSE file at https://angular.io/license
|
* found in the LICENSE file at https://angular.io/license
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// bootstrap the bazel require patch since this bootstrap script is loaded with
|
|
||||||
// `--node_options=--require=$(rlocation $(location script.js))`
|
|
||||||
if (process.env['BAZEL_NODE_RUNFILES_HELPER']) {
|
|
||||||
require(process.env['BAZEL_NODE_RUNFILES_HELPER'] as string).patchRequire();
|
|
||||||
}
|
|
||||||
|
|
||||||
import 'zone.js/lib/node/rollup-main';
|
import 'zone.js/lib/node/rollup-main';
|
||||||
import 'zone.js/lib/zone-spec/long-stack-trace';
|
import 'zone.js/lib/zone-spec/long-stack-trace';
|
||||||
import 'zone.js/lib/zone-spec/task-tracking';
|
import 'zone.js/lib/zone-spec/task-tracking';
|
||||||
|
|
Loading…
Reference in New Issue