@layermint/sdk-webpack
v0.2.0
Published
Webpack plugin for LayerMint srcRoot overrides with symbol-level fallback.
Downloads
126
Maintainers
Readme
@layermint/sdk-webpack
Webpack plugin for LayerMint composable srcRoot overrides (region + brand + tenant) with named-export fallback and contract checks.
Install
pnpm add @layermint/sdk-webpackUsage
import { createVariantOverrideWebpackPlugin } from "@layermint/sdk-webpack"
export default {
// Keep your own alias config to map "@" to your src root.
resolve: {
alias: {
"@": require("node:path").resolve(__dirname, "src"),
},
},
plugins: [
createVariantOverrideWebpackPlugin({
selector: {
region: process.env.LAYERMINT_REGION,
brand: process.env.LAYERMINT_BRAND,
tenant: process.env.LAYERMINT_TENANT,
},
layers: ["region", "brand", "tenant", "default"],
roots: {
srcRoot: "src",
variantsRoot: "src/variants",
},
mergeStrategy: "namedExport",
contractChecks: true,
}),
],
}Rules
- Overrideable modules must use named exports only (no
export default). - Any
@/*import undersrcRootcan be overridden, except@/variants/*. - Canonical override path order:
region/<key>/brand/<key>/tenant/<key>.
What It Does
- Uses
srcRootas the canonical source tree. - Resolves overrides from
variantsRoot/<selector>/.... - Writes generated merged modules to cache so Webpack can load the resolved export graph.
Notes
- Requires Webpack 5 (
peerDependency). - Intercepts imports under
@/*, excluding@/variants/*. - Generates merged virtual modules in
node_modules/.cache/layermint-webpack.
Docs
- Repository: https://github.com/layermint/layermint-packages
