build: add a before-all-other bootstrap script that patches require (#34589)
This removes the churn in the existing bootstrap scripts. PR Close #34589
This commit is contained in:
parent
4754e495dc
commit
c3e8439954
|
@ -6,12 +6,6 @@
|
|||
* 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
|
||||
import 'zone.js/lib/node/rollup-main';
|
||||
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
|
||||
*/
|
||||
|
||||
// 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.
|
||||
import './test_fake_polyfill';
|
||||
|
||||
|
|
|
@ -13,12 +13,6 @@
|
|||
* 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.
|
||||
import './node-env-setup';
|
||||
import './test_fake_polyfill';
|
||||
|
|
|
@ -13,12 +13,6 @@
|
|||
* 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.
|
||||
import './node-env-setup';
|
||||
import './test_fake_polyfill';
|
||||
|
|
|
@ -6,12 +6,6 @@
|
|||
* 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'] =
|
||||
'disable';
|
||||
import './node_error_entry_point';
|
||||
|
|
|
@ -6,11 +6,5 @@
|
|||
* 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';
|
||||
import './node_error_entry_point';
|
||||
|
|
|
@ -268,11 +268,16 @@ def jasmine_node_test(bootstrap = [], **kwargs):
|
|||
"@npm//source-map-support",
|
||||
"@npm//tslib",
|
||||
"@npm//xhr2",
|
||||
"//tools/testing:bazel_patch_require.js",
|
||||
]
|
||||
configuration_env_vars = kwargs.pop("configuration_env_vars", []) + [
|
||||
"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:
|
||||
deps += [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"])
|
||||
|
||||
exports_files(["bazel_patch_require.js"])
|
||||
|
||||
ts_library(
|
||||
name = "browser",
|
||||
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
|
||||
*/
|
||||
|
||||
// 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/zone-spec/long-stack-trace';
|
||||
import 'zone.js/lib/zone-spec/task-tracking';
|
||||
|
|
Loading…
Reference in New Issue