0

是否有可能在我的配置中选择为具有 .jsx 扩展名的特定文件提供反应包。

现在我已经为 .js 和 .jsx 导入了反应,但我可以只对 .jsx 文件限制它吗

new webpack.ProvidePlugin({
    "React": "react",
}),
4

1 回答 1

1

目前使用 webpack ProviderPlugin 是不可能的。

作为临时解决方案,您可以修改 ProviderPluginnode_modules/webpack/lib/ProviderPlugin.js并在第 56 和 47 行下方添加以下代码:

parser.hooks.expression.for(name).tap("ProvidePlugin", expr => {
  if (name === 'React' && !parser.state.current.resource.endsWith('.jsx')) {
    return true;
  }

  // ...
});

你甚至可以 fork 插件并将其作为修改版本发布到你的 NPM 帐户下。

于 2021-01-01T10:57:36.483 回答