Files
angular__angular/devtools/projects/shell-chrome/src/BUILD.bazel
T

124 lines
3.3 KiB
Python
Raw Normal View History

load("@npm//@bazel/rollup:index.bzl", "rollup_bundle")
load("@npm//@bazel/terser:index.bzl", "terser_minified")
load("@io_bazel_rules_sass//:defs.bzl", "sass_binary", "sass_library")
load("@build_bazel_rules_nodejs//:index.bzl", "js_library", "pkg_web")
load("@npm//html-insert-assets:index.bzl", "html_insert_assets")
load("//tools:angular_ts_project.bzl", "ng_ts_project")
load("//tools:typescript.bzl", "ts_project")
package(default_visibility = ["//visibility:public"])
sass_library(
name = "material-theming",
srcs = ["@npm//:node_modules/@angular/material/_index.scss"],
)
sass_binary(
name = "shell-chrome-styles",
src = "styles.scss",
sourcemap = False,
deps = [":material-theming"],
)
ts_project(
name = "devtools-ts",
srcs = [
"devtools.ts",
],
deps = [
"@npm//@types/chrome",
],
)
js_library(
name = "devtools",
deps = [":devtools-ts"],
)
ng_ts_project(
name = "src",
srcs = [
"main.ts",
"polyfills.ts",
],
deps = [
"//projects/ng-devtools",
"//projects/shell-chrome/src/app",
"//projects/shell-chrome/src/environments:environment",
"@npm//@angular/core",
"@npm//@angular/platform-browser-dynamic",
],
)
rollup_bundle(
name = "devtools-app-bundle-es2015",
config_file = "rollup.config.js",
entry_point = "main.ts",
output_dir = True,
deps = [
":src",
"@npm//@rollup/plugin-commonjs",
"@npm//@rollup/plugin-node-resolve",
],
)
terser_minified(
name = "devtools-app-bundle-es2015.min",
src = ":devtools-app-bundle-es2015",
)
# Files that we serve in both development and production
_ASSETS = [
# This label references an output of the "styles" sass_binary above.
":shell-chrome-styles",
":manifest.json",
# We load zone.js outside the bundle. That's because it's a "pollyfill"
# which speculates that such features might be available in a browser.
# Also it's tricky to configure dead code elimination to understand that
# zone.js is used, given that we don't have any import statement that
# imports from it.
"@npm//:node_modules/zone.js/dist/zone.min.js",
]
html_insert_assets(
name = "inject_scripts_for_prod",
outs = ["index.html"],
args = [
"--html=$(execpath //projects/shell-chrome/src:_index.html)",
"--out=$@",
"--roots=. $(RULEDIR)",
"--assets",
] + ["$(execpath %s)" % s for s in _ASSETS],
data = ["//projects/shell-chrome/src:_index.html"] + _ASSETS,
)
rollup_bundle(
name = "devtools-es2015",
entry_point = "devtools.ts",
format = "iife",
deps = [
":devtools",
],
)
pkg_web(
name = "prodapp",
srcs = _ASSETS + [
":devtools-es2015",
"//projects/shell-chrome/src/app:ng-validate-es2015",
"//projects/shell-chrome/src/app:background-es2015",
"//projects/shell-chrome/src/app:backend-es2015",
"//projects/shell-chrome/src/app:content-script-es2015",
":devtools-app-bundle-es2015",
":inject_scripts_for_prod",
"//projects/shell-chrome/src/assets",
"//projects/shell-chrome/src/popups",
"//projects/shell-chrome/src:devtools.html",
"//projects/ng-devtools/src/lib/images",
],
additional_root_paths = [
"projects/ng-devtools/src/lib",
],
)