我使用full control + defaults模式编写了这个.storybook/webpack.config.js
文件:
module.exports = (baseConfig, env, defaultConfig) => {
defaultConfig.module.rules.push({
test: /\.svg$/,
loader: 'svg-url-loader',
options: { noquotes: true }
});
return defaultConfig;
}
这破坏了我的输出,因为已经有一个default rule testing for /\.svg$/
,所以svg-url-loader
被应用了两次。
我最终写了这个:
module.exports = (baseConfig, env, defaultConfig) => {
// Find the existing svg rule:
const svgRuleIndex = defaultConfig.module.rules.findIndex(rule => rule.test.toString() === /\.svg$/.toString());
// Add the noquotes option to it:
defaultConfig.module.rules[svgRuleIndex].options = { noquotes: true };
return defaultConfig;
}
这是一种骇客。
是否有更好的方法将options
添加到现有规则?