在 Electron + React Native 项目中设置 keep_fnames

Set keep_fnames in Electron + React Native project

目前我正在开发一个严重依赖<object>.constructor.name进行数据序列化的项目。

该项目基于 electron.js 和 React Native。

它通过 yarn run electron-dev 工作正常,但通过 yarn run electron-pack 在生产中失败。

显然,WebPack 和 Uglify 倾向于破坏函数名称,所以

 <myTypeClassName>SomeDataType</myTypeClassName>
 <myTypeClassName>AnotherDataType</myTypeClassName>

我得到:

 <myTypeClassName>t</myTypeClassName>
 <myTypeClassName>e</myTypeClassName>

反序列化失败,因为 te 都不是应用程序范围内的有效构造函数。

如果我编辑 node_modules/react-scripts/config/webpack.prod.js 并将 keep_fnames 添加到 UglifyJS 配置对象的 mangle 部分,该项目工作正常。

然而,在 node_modules 中编辑它并不是一个正确的方法。我怎样才能在我的 package.json 或其他任何地方设置这个来使用这个选项?

最后我不得不 运行 react-scripts eject,因为这似乎是正确配置的唯一解决方案。