| load("@npm//@bazel/typescript:index.bzl", "ts_project") | |
| load("@npm//http-server:index.bzl", "http_server") | |
| load("@npm//sass:index.bzl", "sass") | |
| load("@npm//webpack-cli:index.bzl", webpack = "webpack_cli") | |
| sass( | |
| name = "styles", | |
| outs = ["styles.css"], | |
| args = [ | |
| "$(execpath styles.scss)", | |
| "$(execpath styles.css)", | |
| ], | |
| data = ["styles.scss"], | |
| ) | |
| ts_project( | |
| # Experimental: Start a tsc daemon to watch for changes to make recompiles faster. | |
| supports_workers = True, | |
| deps = [ | |
| "@npm//@types", | |
| "@npm//csstype", | |
| ], | |
| ) | |
| webpack( | |
| name = "bundle", | |
| outs = ["app.bundle.js"], | |
| args = [ | |
| "$(execpath index.js)", | |
| "--config", | |
| "$(execpath webpack.config.js)", | |
| "-o", | |
| "$@", | |
| ], | |
| data = [ | |
| "index.js", | |
| "styles.css", | |
| "webpack.config.js", | |
| "@npm//:node_modules", | |
| ], | |
| ) | |
| # Note, on Windows you need `--enable_runfiles` | |
| http_server( | |
| name = "server", | |
| data = [ | |
| "app.bundle.js", | |
| "index.html", | |
| ], | |
| templated_args = ["."], | |
| ) |