【问题标题】:Webpack: Ignore React Native Module and Load Web ModuleWebpack:忽略 React Native 模块并加载 Web 模块
【发布时间】:2020-09-22 13:28:31
【问题描述】:
我需要弄清楚如何为特定的 webpack 配置命名不同的包。我要解决的问题是 VictoryJS 库。 (https://formidable.com/open-source/victory/)。我在 React Native 项目中使用 React Native Web,所以当我在设备/模拟器上启动项目时,它工作正常,因为它可以引用适当的包“victory-native”,但是在 web 视图中打开时,它不能使用'victory-native' 它需要使用 'victory' 否则项目将崩溃。
我相信我需要做的是创建新的 webpack 配置,要么为 web 的 web 版本起别名,要么包含两个版本但不包括本机版本。我将如何在 webpack 配置中执行此操作?
【问题讨论】:
标签:
javascript
reactjs
react-native
webpack
【解决方案1】:
Kevin 问得好,您可以通过使用react-app-rewired 并将config-overrides.js 添加到项目的根目录来实现。
这是文件内容:
/* eslint-disable import/no-extraneous-dependencies */
// God bless this absolute gent
// https://github.com/webpack/webpack/issues/4039#issuecomment-686158264
// used by react-app-rewired
module.exports = {
webpack(config, env) {
config.resolve.alias['victory-native'] = 'victory';
return config;
},
};
此 URL https://github.com/webpack/webpack/issues/4039#issuecomment-686158264 指向一个非常有用的评论,其中包含 config-overrides.js 的样板文件 react-native-web。