我们想使用 Service Worker为开发目的执行客户端源代码转换。我们想使用 Babel将 ES6+/ES2015 文件转译为 ES5 模块。
但是,包括 browser version使用 importScripts
在 Service Worker 中使用 babel导致以下错误:
GET http://localhost:8080/babel-core/browser.js net::ERR_FAILED
Uncaught NetworkError: Failed to execute 'importScripts' on 'WorkerGlobalScope': The script at 'http://localhost:8080/babel-core/browser.js' failed to load.
那么,问题是,如何将 babel 正确导入 Service Worker。
编辑:这不是明显的 NetworkError,因为我们可以将文件的内容更改为简单的内容,这使我们能够实际加载和执行文件。此外,可以使用正常的 <script>
加载文件。标签。
edit2:要获取此消息,请查看此存储库 https://github.com/onsetsu/lively4-core.git , 在端口 8080 启动本地服务器,最后加载 http://localhost:8080/bootworker.html .我们目前使用的是 Chrome 44。
最佳答案
我这里的实验怎么样https://github.com/bahmutov/babel-service - 你可以在https://babel-service-demo.herokuapp.com/看到演示.
我正在使用功能测试来检测支持的功能并有选择地转译截获的代码。当然这只是一个开始,只是将默认参数映射到 babel 插件,但可以映射更多功能。
此外,功能测试背后的人员正在讨论选择性转译 https://github.com/getify/es-feature-tests/issues/9
关于ecmascript-6 - 在服务 worker 中使用 browser.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31938525/