我正在使用Electron编写应用程序。当前版本4.0.6基于Node 10.11.0和Chrome 69.0.3947.106。
我认为最新版本的Electron会支持ECMAScript(ES6)模块,但到目前为止我还没能让它们工作。特别是,在启动应用程序时,该行:
从'./action'导入{runTask};
给出了运行时错误:
未捕获的SyntaxError:意外的令牌{
在我更加努力地追踪问题之前,我想知道Electron中模块支持的状态。
Electron版本4(Chrome 69)是否支持ECMAScript(ES6)模块?
Chrome显然支持Chrome 63:
https://caniuse.com/#feat=es6-module-dynamic-import
这可能意味着你可以在你的前端使用它们?
但节点v11.11.0似乎只支持带有额外标志的--experimental-modules
:
https://nodejs.org/api/esm.html
我找不到参考,但是节点10.11.0可能是相同的,这也会使它们在Electron后端工作吗?
(对不起,我还在使用老式的Electron,很高兴使用老式的require()
,所以不能告诉你个人经验是否有效。)
当然你错过了type="module"
标签上的<script>
属性。
然后你将遇到文件协议问题,你可以通过注册自己的协议来解决,如Electron ES6 module import所述