【发布时间】:2016-03-21 12:05:52
【问题描述】:
我的项目结构如下:
- Proj.A:包含所有较少文件(样式、mixin、变量等)的回购
- 结束项目
- 需要 Proj.A
- 具有
config.less,它设置了在 Proj.A 上定义的更少 @variables - 预计下面的所有组件也需要 Proj.A 来获取在
config.less中设置的覆盖值
- 组件(通过
npm install安装在最终项目中)- 还需要 Proj.A 来处理更少的文件(样式、混合、变量等)
- 通过
js要求其风格,如require('index.less') - 如果 Proj.A 中定义的变量未被覆盖,则使用默认值。
为了更好的简化,有一个例子:
项目A
/*index.less*/
// declare all my variables
@bg-color: pink
组件
/* component.js */
require('component.less')
/* component.less */
@import '~projA/index.less'
结束项目
/* index.js */
require('config.less')
var myComponent = require('component')
/* config.less */
@import '~projA/index.less'
@bg-color: blue
webpack 配置(这是一个超级简单的 webpack 配置,唯一特别的就是少了个加载器)
{
loaders: [
{
test: /\.less$/,
loader: ExtractTextPlugin.extract('css?sourceMap!less?sourceMap&strictMath')
}
]
}
我希望如果我需要 Component 隔离,它应该得到一个 @bg-color: pink。但是如果End Project 需要它,它应该得到一个@bg-color: blue。
现在它离开了pink。有没有办法告诉webpack | less-loader 不要单独捆绑或与特定的node_modules 有某种关联。我想知道如何解决这个问题,也许创建一个新的 loader ?
谢谢!
【问题讨论】: