| load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary") |
| |
| package(default_visibility = ["//visibility:public"]) |
| |
| # By default, rollup_bundle rule uses rollup from @npm workspace |
| # and it expects that all plugins are installed in the same workspace. |
| # This rule defines another rollup-bin from @tools_npm workspace. |
| # Usage: rollup_bundle(rollup_bin = "//tools/node_tools:rollup-bin, ...) |
| nodejs_binary( |
| name = "rollup-bin", |
| # Define only minimal required dependencies. |
| # Otherwise remote build execution fails with the too many |
| # files error when it builds :release target. |
| data = [ |
| "@tools_npm//rollup", |
| "@tools_npm//rollup-plugin-terser", |
| ], |
| # The entry point must be "@tools_npm:node_modules/rollup/dist/bin/rollup", |
| # But bazel doesn't run it correctly with the following command line: |
| # bazel test --test_env=GERRIT_NOTEDB=ON --spawn_strategy=standalone \ |
| # --genrule_strategy=standalone --test_output errors --test_summary detailed \ |
| # --flaky_test_attempts 3 --test_verbose_timeout_warnings --build_tests_only \ |
| # --subcommands //... |
| # This command line appears in Gerrit CI. |
| # For details, see comment in rollup-runner.js file |
| entry_point = "//tools/node_tools:rollup-runner.js", |
| ) |
| |
| # Create a tsc_wrapped compiler rule to use in the ts_library |
| # compiler attribute when using self-managed dependencies |
| # TODO: Would be nice to just use `tsc-bin` below instead. |
| # We would prefer to not depend on @bazel/concatjs ... |
| nodejs_binary( |
| name = "tsc_wrapped-bin", |
| # Point bazel to your node_modules to find the entry point |
| data = [ |
| "@tools_npm//@bazel/concatjs", |
| "@tools_npm//typescript", |
| ], |
| # It seems, bazel uses different approaches to compile ts files (it runs some |
| # ts service in background). It works without any workaround. |
| entry_point = "@tools_npm//:node_modules/@bazel/concatjs/internal/tsc_wrapped/tsc_wrapped.js", |
| ) |
| |
| # Wrap a typescript into a tsc-bin binary. |
| # The tsc-bin can be used as a tool to compile typescript code. |
| nodejs_binary( |
| name = "tsc-bin", |
| # Point bazel to your node_modules to find the entry point |
| data = ["@tools_npm//typescript"], |
| entry_point = "@tools_npm//:node_modules/typescript/lib/tsc.js", |
| ) |
| |
| # Wrap twinkie into a twinkie-bin binary. |
| nodejs_binary( |
| name = "twinkie-bin", |
| # Point bazel to your node_modules to find the entry point |
| data = ["@npm//:node_modules"], |
| entry_point = "@npm//:node_modules/twinkie/src/app/index.js", |
| # Should not run sandboxed. |
| tags = [ |
| "local", |
| "manual", |
| ], |
| ) |