Bazel rules for CSS, SASS, and related technologies.
- Flexibility and extensibility
- Performance
- Bazel idioms
- Clear factorization
- languages
- SASS
- dev
- Stardoc
- CI
package.json
{}lib.scss
button {
border: 1px solid red;
}styles.scss
@import "lib";
body {
margin: 0;
}BUILD.bazel
load("@better_rules_css//sass:rules.bzl", "sass_bundle", "sass_library")
load("@better_rules_javascript//commonjs:rules.bzl", "cjs_root")
# SASS bundle
sass_bundle(
compiler = "//:sassc",
dep = ":styles",
main = "styles.scss",
name = "css",
)
# SASS library
sass_library(
name = "lib",
root = ":root",
srcs = ["lib.scss"],
)
# package root
cjs_root(
descriptors = ["package.json"],
name = "root",
package_name = "example",
)
# SASS library
sass_library(
deps = [":lib"],
name = "styles",
root = ":root",
srcs = ["styles.scss"],
out = "styles.css",
)Running
bazel build :css
cat bazel-bin/styles.cssoutputs
button {
border: 1px solid red;
}
body {
margin: 0;
}See auto-generated Stardoc documentation.