| # Common Bazel settings for JavaScript/NodeJS workspaces | |
| # This rc file is automatically discovered when Bazel is run in this workspace, | |
| # see https://docs.bazel.build/versions/master/guide.html#bazelrc | |
| # | |
| # The full list of Bazel options: https://docs.bazel.build/versions/master/command-line-reference.html | |
| # Cache action outputs on disk so they persist across output_base and bazel shutdown (eg. changing branches) | |
| build --disk_cache=~/.cache/bazel-disk-cache | |
| # Bazel picks up host-OS-specific config lines from bazelrc files | |
| build --enable_platform_specific_config | |
| # Bazel will create symlinks from the workspace directory to output artifacts. | |
| # Build results will be placed in a directory called "dist/bin" | |
| # Other directories will be created like "dist/testlogs" | |
| # Be aware that this will still create a bazel-out symlink in | |
| # your project directory, which you must exclude from version control and your | |
| # editor's search path. | |
| build --symlink_prefix=dist/ | |
| # To disable the symlinks altogether (including bazel-out) you can use | |
| # build --symlink_prefix=/ | |
| # however this makes it harder to find outputs. | |
| # Specifies desired output mode for running tests. | |
| # Valid values are | |
| # 'summary' to output only test status summary | |
| # 'errors' to also print test logs for failed tests | |
| # 'all' to print logs for all tests | |
| # 'streamed' to output logs for all tests in real time | |
| # (this will force tests to be executed locally one at a time regardless of --test_strategy value). | |
| test --test_output=errors | |
| # Support for debugging NodeJS tests | |
| # Add the Bazel option `--config=debug` to enable this | |
| # --test_output=streamed | |
| # Stream stdout/stderr output from each test in real-time. | |
| # See https://docs.bazel.build/versions/master/user-manual.html#flag--test_output for more details. | |
| # --test_strategy=exclusive | |
| # Run one test at a time. | |
| # --test_timeout=9999 | |
| # Prevent long running tests from timing out | |
| # See https://docs.bazel.build/versions/master/user-manual.html#flag--test_timeout for more details. | |
| # --nocache_test_results | |
| # Always run tests | |
| # --node_options=--inspect-brk | |
| # Pass the --inspect-brk option to all tests which enables the node inspector agent. | |
| # See https://nodejs.org/de/docs/guides/debugging-getting-started/#command-line-options for more details. | |
| # --define=VERBOSE_LOGS=1 | |
| # Rules will output verbose logs if the VERBOSE_LOGS environment variable is set. `VERBOSE_LOGS` will be passed to | |
| # `nodejs_binary` and `nodejs_test` via the default value of the `default_env_vars` attribute of those rules. | |
| # --compilation_mode=dbg | |
| # Rules may change their build outputs if the compilation mode is set to dbg. For example, | |
| # mininfiers such as terser may make their output more human readable when this is set. Rules will pass `COMPILATION_MODE` | |
| # to `nodejs_binary` executables via the actions.run env attribute. | |
| # See https://docs.bazel.build/versions/master/user-manual.html#flag--compilation_mode for more details. | |
| test:debug --test_output=streamed --test_strategy=exclusive --test_timeout=9999 --nocache_test_results --define=VERBOSE_LOGS=1 | |
| # Use bazel run with `--config=debug` to turn on the NodeJS inspector agent. | |
| # The node process will break before user code starts and wait for the debugger to connect. | |
| run:debug --define=VERBOSE_LOGS=1 -- --node_options=--inspect-brk | |
| # The following option will change the build output of certain rules such as terser and may not be desirable in all cases | |
| build:debug --compilation_mode=dbg | |
| # Turn off legacy external runfiles | |
| # This prevents accidentally depending on this feature, which Bazel will remove. | |
| build --nolegacy_external_runfiles | |
| # Workaround for: https://github.com/bazelbuild/bazel/issues/4327. | |
| # The Chromium browser archive for macOS and Windows contain files with spaces that | |
| # will break runfile tree creation for browser tests relying on `rules_webtesting`. | |
| build:macos --experimental_inprocess_symlink_creation | |
| build:windows --experimental_inprocess_symlink_creation | |
| # Turn on --incompatible_strict_action_env which was on by default | |
| # in Bazel 0.21.0 but turned off again in 0.22.0. Follow | |
| # https://github.com/bazelbuild/bazel/issues/7026 for more details. | |
| # This flag is needed to so that the bazel cache is not invalidated | |
| # when running bazel via `yarn bazel`. | |
| # See https://github.com/angular/angular/issues/27514. | |
| build --incompatible_strict_action_env | |
| run --incompatible_strict_action_env | |
| # When running `bazel coverage` --instrument_test_targets needs to be set in order to | |
| # collect coverage information from test targets | |
| coverage --instrument_test_targets | |
| # Load any settings specific to the current user. | |
| # .bazelrc.user should appear in .gitignore so that settings are not shared with team members | |
| # This needs to be last statement in this | |
| # config, as the user configuration should be able to overwrite flags from this file. | |
| # See https://docs.bazel.build/versions/master/best-practices.html#bazelrc | |
| # (Note that we use .bazelrc.user so the file appears next to .bazelrc in directory listing, | |
| # rather than user.bazelrc as suggested in the Bazel docs) | |
| try-import %workspace%/.bazelrc.user |