diff --git a/cypress/plugins/index.js b/cypress/plugins/index.js index 0a6add1fed8..58e2129320d 100644 --- a/cypress/plugins/index.js +++ b/cypress/plugins/index.js @@ -1,5 +1 @@ -const cypressTypeScriptPreprocessor = require('./cy-ts-preprocessor'); - -module.exports = on => { - on('file:preprocessor', cypressTypeScriptPreprocessor); -}; +module.exports = (on) => {}; diff --git a/projects/shell-chrome/BUILD.bazel b/projects/shell-chrome/BUILD.bazel new file mode 100644 index 00000000000..8fde2b695ba --- /dev/null +++ b/projects/shell-chrome/BUILD.bazel @@ -0,0 +1,9 @@ +load("@npm//@bazel/typescript:index.bzl", "ts_config") + +package(default_visibility = ["//visibility:public"]) + +ts_config( + name = "tsconfig-app", + src = "tsconfig.app.json", + deps = ["//:tsconfig.json"], +) diff --git a/projects/shell-chrome/src/BUILD.bazel b/projects/shell-chrome/src/BUILD.bazel new file mode 100644 index 00000000000..83e102cb816 --- /dev/null +++ b/projects/shell-chrome/src/BUILD.bazel @@ -0,0 +1,123 @@ +load("@npm//@bazel/rollup:index.bzl", "rollup_bundle") +load("@npm//@bazel/terser:index.bzl", "terser_minified") +load("//tools:angular_ts_library.bzl", "ng_ts_library") +load("@io_bazel_rules_sass//:defs.bzl", "sass_library", "sass_binary") +load("@build_bazel_rules_nodejs//:index.bzl", "pkg_web") +load("@npm//html-insert-assets:index.bzl", "html_insert_assets") +load("@npm//@bazel/typescript:index.bzl", "ts_library") + +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", + deps = [":material-theming"], + sourcemap = False, +) + +ts_library( + name = "devtools", + srcs = [ + "devtools.ts" + ], + deps = [ + "@npm//@types/chrome", + ], + tsconfig = "//projects/shell-chrome:tsconfig-app", +) + +ng_ts_library( + name = "src", + srcs = [ + "main.ts", + "polyfills.ts" + ], + deps = [ + "//projects/shell-chrome/src/app", + "//projects/shell-chrome/src/environments:environment", + "//projects/ng-devtools", + "@npm//@angular/core", + "@npm//@angular/platform-browser-dynamic", + ], + tsconfig = "//projects/shell-chrome:tsconfig-app", + module_name = "shell-chrome", +) + + +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", + ], +) \ No newline at end of file diff --git a/projects/shell-chrome/src/index.html b/projects/shell-chrome/src/_index.html similarity index 80% rename from projects/shell-chrome/src/index.html rename to projects/shell-chrome/src/_index.html index 961767aef51..b0a8bdc039f 100644 --- a/projects/shell-chrome/src/index.html +++ b/projects/shell-chrome/src/_index.html @@ -10,5 +10,7 @@