在Storybook Webpack“完全控制”模式下向现有规则添加选项

时间:2018-09-24 14:53:24

标签: javascript webpack storybook

我使用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添加到现有规则?

0 个答案:

没有答案