JavaScript libraries are JavaScript files and their dependencies.
Each JS library is within a CommonJS root. For discussion on JS module resolution, see Module Resolution.
The module type is requested using the //javascript:module setting.
Language version is requested using the //javascript:language setting.
Examples:
- Module type is set via transform by
nodejs_binaryto benode - Module type is used by the
ts_libraryto set themodulecompiler option.
js_library does not enforce that files adhere to this requirement, or
automatically transform them. Modules should already be in a verion and format
compatible with the final bundler or runtime.
package.json
{}lib.js
export const text = "Hello world";main.js
import { text } from "./a";
console.log(text);BAZEL.build
load("@better_rules_javascript//commonjs:rules.bzl", "cjs_root")
load("@better_rules_javascript//javascript:rules.bzl", "js_library")
cjs_root(
name = "root",
descriptor = "package.json",
)
js_library(
name = "lib",
root = ":root",
srcs = ["lib.js"],
)
js_library(
name = "main",
deps = [":lib"],
root = ":root",
srcs = ["main.js"],
)JsInfo(transitive_files)
JavaScript
FIELDS
| Name | Description |
|---|---|
| transitive_files | Depset of files (descriptors, JavaScript, data files) |
create_js_info(cjs_root, files, deps)
PARAMETERS
| Name | Description | Default Value |
|---|---|---|
| cjs_root | - |
none |
| files | - |
[] |
| deps | - |
[] |
js_npm_inner_label(repo)
PARAMETERS
| Name | Description | Default Value |
|---|---|---|
| repo | - |
none |
js_npm_label(repo)
PARAMETERS
| Name | Description | Default Value |
|---|---|---|
| repo | - |
none |
js_export(name, dep, deps, extra_deps, global_deps, package_name)
Add dependencies, or use alias.
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| dep | JavaScript library. | Label | required | |
| deps | Dependencies to add. | List of labels | optional | [] |
| extra_deps | Extra dependencies to add. | List of labels | optional | [] |
| global_deps | Global dependencies to add. | List of labels | optional | [] |
| package_name | Dependency name. Defaults to root's name. | String | optional | "" |
js_library(name, data, deps, global_deps, prefix, root, srcs, strip_prefix)
JavaScript library
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| data | Runfile files. These are added to normal runfiles tree, not CommonJS packages. | List of labels | optional | [] |
| deps | Dependencies. | List of labels | optional | [] |
| global_deps | Global dependencies. | List of labels | optional | [] |
| prefix | Prefix to add. | String | optional | "" |
| root | - | Label | optional | None |
| srcs | JavaScript files and data. | List of labels | optional | [] |
| strip_prefix | Package-relative prefix to remove. | String | optional | "" |
js_directory_npm_plugin()
js_npm_plugin(exclude_suffixes)
PARAMETERS
| Name | Description | Default Value |
|---|---|---|
| exclude_suffixes | - |
[] |