ecmascript-6 - 在服务 worker 中使用 browser.js

标签 ecmascript-6 web-worker babeljs service-worker

我们想使用 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/

相关文章:

javascript - 如何使用 jQuery 从 Web Worker Thread 中解析 XML

javascript - 修改减少es6

reactjs - 用于非类型化 npm 模块的 TypeScript 自定义声明文件

javascript - 如何使用 ListView 使用回调 ref - React Native

webpack - 创建React应用程序生产构建破坏了npm模块中的material-ui v1.0.0组件

gulp - 使用Babel转换为es3(与 Safari 兼容)

javascript - 如何设置 TypeScript + Babel + Webpack?

javascript - 将全局导入模块模式转换为 ES6 模块

cordova - Phonegap 和 WebWorkers

javascript - Canvas 数据到网络 worker