【发布时间】:2015-08-26 02:46:10
【问题描述】:
我使用 webpack 需要 Bootstrap,所以我从 npm 安装 bootstrap,但我也想通过修改 'variables.less' 来自定义 Bootstrap,这会导致问题,下次我从npm升级Bootstrap时,我的修改已经没有了,我该怎么办呢?
【问题讨论】:
标签: twitter-bootstrap npm webpack
我使用 webpack 需要 Bootstrap,所以我从 npm 安装 bootstrap,但我也想通过修改 'variables.less' 来自定义 Bootstrap,这会导致问题,下次我从npm升级Bootstrap时,我的修改已经没有了,我该怎么办呢?
【问题讨论】:
标签: twitter-bootstrap npm webpack
您可以在 Bootstrap 之外的自定义文件中轻松覆盖 LESS 变量。只要在 @import 所有 Bootstrap LESS 文件之后,@import 覆盖了 Bootstrap 变量的文件,就可以了。
【讨论】:
在Shane's answer 的基础上,我是这样做的:
node_modules/bootstrap/less/bootstrap.less复制到boostrap-custom.less
src/style/bootstrap-custom.less
less 源的变量(该源位于node_modules 下),并搜索/替换所有现有的@import 指令以指向正确的路径(参见下面的示例)。根据需要进行自定义。require/import 需要的文件:import './style/bootstrap-custom.less';
示例(调整相对路径、注释掉不需要的模块、进行自定义等):
/* Custom Bootstrap composer */
@BS: "../../node_modules/bootstrap/less";
// Core variables and mixins
@import "@{BS}/variables.less";
@import "@{BS}/mixins.less";
// Reset and dependencies
@import "@{BS}/normalize.less";
@import "@{BS}/print.less";
// Disabling glyphicons for [reasons]
//@import "@{BS}/glyphicons.less";
[...]
@import 语句中的变量插值是implemented in Less 1.4.0,所以现在应该到处都支持它。
这应该可以在引导程序的(次要)更新中继续存在。当然,如果他们大量更改主要的 .less 文件,您可能需要调整或重做它。
【讨论】: