我正在尝试在使用 Apache Cordova 构建的混合移动应用程序中使用 ES6 模块。不幸的是,Cordova 似乎在没有 MIME 类型的情况下提供模块,这会在 WebView 中引发错误(在 Chrome 63 和 64 beta 中)。
具体来说,部署的应用程序(使用Chrome 远程调试器 https://developers.google.com/web/tools/chrome-devtools/remote-debugging/)抛出以下错误:
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.
我正在使用 bog 标准 ES6 导入,现在 chrome 的目标版本支持它。
<!--index.html-->
<script type="module">
import App from "./app.js"
import config from "./config.js"
window.app = new App(config)
</script>
当预构建资产通过 Web 服务器提供而不是通过 Cordova 部署时,一切都会正常工作。通过 Babel 进行转换可能是一种选择,但这似乎是一个非常令人头疼的问题,在我知道没有更好的选择之前,我宁愿不走这条路。
有什么建议吗?
我最终通过使用解决了这个问题webpack https://webpack.js.org/将我的所有代码和资产编译到一个文件中。这允许使用导入语法,而不会出现 Apache Cordova 中的所有相关问题。它不如本机支持那么好,但对我来说这是最好的解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)