在 Electron + React Native 项目中设置keep_fnames



目前我正在开发一个严重依赖<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,因为它似乎是正确配置的唯一解决方案。

最新更新