首页 > 解决方案 > 选择为哪些文件提供选择模块 webpack.ProvidePlugin

问题描述

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

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

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

标签: webpackwebpack-provide-plugin

解决方案


目前使用 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 帐户下。


推荐阅读