2017-04-06 84 views
0

这似乎与BABEL: Unknown option: base.Children有关,但在那里提供的修复无法帮助我解决问题。两天前,我有一个以开发模式运行的Electron应用程序(通过“电子伪造开始”)和一个打包的应用程序(在'electron-forge package'生成的文件夹中启动可执行文件)。该应用程序将继续在发展中运行,它会在生产中执行,但巴贝尔在Web控制台产生一个错误:电子锻造+巴贝尔+ React + JSX:生产应用中的“未知选项base.children”

Unknown option: base.Children. Check out http://... 

这发生在呼唤着我的JSX文件之一,首先需要声明(还有一件事:react-forge不会传输JSX,我怀疑我即将被告知RTFM)。每当我想要时,我都可以得到同样的错误。我所要做的就是在控制台中输入“require('somefile.jsx')”,它会做同样的事情。对错误的调查显示,选项管理器的mergeOptions函数在应该包含预设和插件的循环期间的一个点传递React副本。同样,这在更改应用程序代码后并未发生;我试图更新NPM中的一些软件包,而我做的下一个版本产生了这个错误。

我已经完全清除了node_modules目录并运行新的'npm install',接着'electron-rebuild',应用程序的重新包装产生相同的结果。我已经尝试根据Babel网站上的文档在package.json中包含.babelrc内容。同样,开发工作正常,生产失败。创建兼容的.compilerc产生类似的不同结果。我的产品应用程序如何获得一个React组件,它应该有Babel选项?

回答

0

我刚找到解决方案。这是一个组合问题。反应自己和巴贝尔的反应预设都回答'反应'作为预设名称。如果插件缺失但React存在,Babel将拉动React并将其传递给mergeOptions,产生所描述的错误。 另一方面,如果你在package.json中需要一个模块(比如React预设),在dev依赖和通用依赖下都出现错误,那么由electron-forge运行的打包子进程将忽略一般条目下的条目依赖。结果:没有预设,而不是吐出一个“缺少预设”的错误,Babel只是吮吸React本身,并假装找到了它被告知要寻找的预设。