Webpack bundles modules into one or more files.
lib.js
export const a = "apple";main.js
import { a } from "./lib";
console.log(a);webpack.config.js
module.exports = {
entry: "./main.js",
};BUILD.bzl
load("@better_rules_javascript//commonjs:rules.bzl", "cjs_root")
load("@better_rules_javascript//javascript:rules.bzl", "js_library")
load("@better_rules_javascript//webpack:rules.bzl", "configure_webpack", "webpack_bundle")
webpack_bundle(
name = "bundle",
dep = ":b",
root = ":root",
webpack = ":webpack",
)
js_library(
name = "lib",
root = ":root",
srcs = ["a.js", "b.js"],
)
cjs_root(
name = "root",
)
configure_webpack(
name = "webpack",
config = "webpack.config.js",
config_dep = ":webpack_config",
)
js_library(
name = "webpack_config",
root = ":root",
srcs = ["webpack.config.js"],
)WebpackInfo(bin, server, client_cjs, client_js, config_path)
Webpack configuration
FIELDS
| Name | Description |
|---|---|
| bin | Webpack executable |
| server | Webpack server executable |
| client_cjs | Webpack dev server lib |
| client_js | Webpack dev server lib |
| config_path | Config path |
webpack(name, bin, client, config, config_dep, language, module, server)
Webpack tools
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| bin | Webpack executable | Label | required | |
| client | - | List of labels | required | |
| config | - | String | required | |
| config_dep | - | Label | required | |
| language | - | String | optional | "es2020" |
| module | - | String | optional | "esnext" |
| server | - | Label | required |
webpack_bundle(name, dep, output, root, webpack)
Webpack bundle
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| dep | JavaScript dependencies | Label | required | |
| output | Output directory. Defaults to the name of the rule | String | optional | "" |
| root | CommonJS package root | Label | required | |
| webpack | Webpack tools | Label | required |
webpack_server(name, dep, language, module, webpack)
Run a webpack server
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| dep | JavaScript dependencies | Label | required | |
| language | - | String | optional | "" |
| module | - | String | optional | "esnext" |
| webpack | Webpack tools | Label | required |
configure_webpack(name, config, config_dep, cli, webpack, dev_server, node_options, visibility)
Set up webpack tools.
PARAMETERS