我在我的ES6语法 -based应用程序中使用各种import (例如import等)& 反应代码(JSX)。在开发过程中,为了支持这些新特性,我使用了电子预编译包(作为开发依赖项),它运行得非常好,没有任何错误。
但是,在使用电子包装机包打包我的应用程序并运行可发行应用程序文件之后,我遇到了不支持的ES6相关错误,例如:
Unexpected token import这就是我如何运行电子打包器命令(请注意平台和架构标志):
electron-packager . MyCoolApp --platform=linux --arch=x64为什么我的应用程序的打包/可发行版本不支持ES6/React特性?
发布于 2018-04-01 16:53:28
解决了。
事实证明,在默认情况下,devDependencies在打包过程中被省略了,这意味着electron-prebuild-compile包对于打包的应用程序来说是“游戏之外的”,没有它,ES6就不能被转换。因此,为了禁用这种默认行为,我必须使用--no-prune标志调用packager命令,这样devDependencies就不会被删除:
electron-packager . MyCoolApp --platform=linux --arch=x64 --no-prune此外,为了在呈现之前“编译”代码(应该用作应用程序的主要入口点脚本),我还引入了一个用于初始化主应用程序脚本的新脚本(让我们将其命名为:es6-init.js):
var appRoot = path.join(__dirname, '..');
require('electron-compile').init(appRoot, require.resolve('./main'));参考文献:
发布于 2018-03-30 21:31:50
Nodejs(和它一起,电子)不支持import和export。您将需要使用require();
https://stackoverflow.com/questions/49556041
复制相似问题