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