Apache Cordova混合应用程序中的ES6模块/导入抛出MIME类型错误

Mic*_*ley 8 javascript google-chrome cordova hybrid-mobile-app es6-modules

我正在尝试在使用Apache Cordova构建的混合移动应用程序中使用ES6模块。不幸的是,Cordova似乎正在提供不带MIME类型的模块,这在WebView中抛出错误(在Chrome 63和64 beta中)。

具体来说,已部署的应用程序(使用chrome远程调试器)会引发以下错误:

Failed to load module script: The server responded with a non-JavaScript MIME type of "". Strict MIME type checking is enforced for module scripts per HTML spec.
Run Code Online (Sandbox Code Playgroud)

我使用的是沼泽标准ES6导入,目标版本的chrome现在支持该功能。

<!--index.html-->
<script type="module">
    import App from "./app.js"
    import config from "./config.js"
    window.app = new App(config)
</script>
Run Code Online (Sandbox Code Playgroud)

当通过Web服务器而不是通过Cordova部署预构建资产时,一切工作正常。通过Babel进行转载可能是一个选择,但似乎很头疼,我宁愿走这条路,直到我知道没有更好的选择。

有什么建议吗?

Mic*_*ley 3

我最终通过使用webpack将所有代码和资产编译到一个文件中来解决这个问题。这允许使用导入语法,而不会出现 Apache Cordova 中的所有相关问题。它不如本机支持那么好,但对我来说这是最好的解决方案。