在我的webpack配置中,我希望能够定义一个全局的较少变量文件,该文件将包含在每个较少的组件中。
使用sass-loader,您可以提供以下选项:
loaderOptions: {
data: "@import 'globals.sass'"
}
我可以通过less-loader找到的唯一选择是globalVars:
loaderOptions: {
globalVars: {}
}
现在,这可以正常工作,但是globalVars希望对象具有键值对。我宁愿有一个theme.less,它随每个组件附加。较少加载程序有可能吗?
答案 0 :(得分:1)
我建议将您的less-loader
与text-transform-loader
链接起来,如下所示:
rules: [{
test: /\.js$/,
use: [
{
loader: 'less-loader',
options: //your normal options
},
{
loader: 'text-transform-loader',
options: {
prependText: '@import "../styles/theme.less"'
}
}
]
}]
请记住,最先应用了最后一个webpack加载器,因此您可能希望将其用作链中的最后一个加载器。如果将较少的文件嵌套在不同的深度,则这很可能会中断,因为相对于每个主题文件,主题文件的深度将不同。如果是这样,您可以将主题文件的全部内容附加到每个较少的文件中!
从此规则中排除theme.less
文件也是个好主意,否则您将获得一些奇怪的无限递归。
有关详细信息,请参见https://github.com/kmck/webpack-text-transform-loader。
答案 1 :(得分:0)
那是我的方式:
rules: [{
test: /\.less$/,
use: [{
loader: 'less-loader',
options: {
javascriptEnabled: true
}
},
{
loader: 'style-resources-loader',
options: {
patterns: [
path.resolve(__dirname, 'src/application/less/variables.less'),
path.resolve(__dirname, 'src/application/less/flex.less'),
path.resolve(__dirname, 'src/application/less/functions.less'),
]
}
}]
}]