0

我正在开发一个使用 webpack 捆绑的应用程序。该应用程序由托管在私有 NPM 注册表中的多个 NPM 模块构建而成。其中一些模块从Bootstrap导入 LESS 变量:

// my-module-stylesheet.less
@import (reference) "~bootstrap/less/variables.less";

.widget {
    background:  @brand-primary;
}

当模块被编译时,这个 LESS 代码被编译成 CSS 并与模块的 JavaScript 文件捆绑在一起(使用less-loader)。

这很好用,除非我的主应用程序在其自己的 LESS 文件中覆盖了 Bootstrap 的默认样式:

// my-app-stylesheet.less
@brand-primary: #d9534f; // red

这些覆盖适用于在我的应用程序中直接定义的样式,因为模块中定义的任何样式都已预编译为 CSS。因此,模块中定义的任何组件都不会反映我的主应用程序中定义的覆盖。

这是对该问题的更直观的解释:

两个具有不同背景颜色的红色方块

如何为我的 NPM 模块和我的 Web 应用程序设置我的 webpack 构建,以允许适用于导入模块的应用程序级 LESS 覆盖?

4

0 回答 0