尝试加载瞬态 Web Worker 时出现“Reflect.defineMetadata”错误

2024-03-27

我正在尝试从 Web Worker 内部加载 aurelia 框架,以便将 Worker 装饰为瞬态。这是工人装载机:

importScripts('/jspm_packages/system.js');
System.config({
  defaultJSExtensions: true,
  transpiler: 'none',
  paths: {
    'npm:*': '/jspm_packages/npm/*'
  },
  map: {
    'aurelia-framework': 'npm:[email protected] /cdn-cgi/l/email-protection',
    'aurelia-dependency-injection': 'npm:[email protected] /cdn-cgi/l/email-protection',
    'aurelia-binding': 'npm:[email protected] /cdn-cgi/l/email-protection',
    'aurelia-metadata': 'npm:[email protected] /cdn-cgi/l/email-protection',
    'aurelia-templating': 'npm:[email protected] /cdn-cgi/l/email-protection',
    'aurelia-loader': 'npm:[email protected] /cdn-cgi/l/email-protection',
    'aurelia-task-queue': 'npm:[email protected] /cdn-cgi/l/email-protection',
    'aurelia-pal': 'npm:[email protected] /cdn-cgi/l/email-protection',
    'aurelia-path': 'npm:[email protected] /cdn-cgi/l/email-protection',
    'aurelia-logging': 'npm:[email protected] /cdn-cgi/l/email-protection',
    'aurelia-polyfills': 'npm:[email protected] /cdn-cgi/l/email-protection',
    'aurelia-fetch-client': 'npm:[email protected] /cdn-cgi/l/email-protection/aurelia-fetch-client'
  }
});
System.import('files-service')
  .then(module => {
    let fs = new module.FilesService();
  });

这是我声明工人阶级的方式:

@transient()
export class FilesService {
  constructor() {
    httpClient = new HttpClient();
    // rest of stuff
  }
}

我得到这个错误:

Uncaught (in promise) Error: Reflect.defineMetadata is not a function
    at Object.define (http://localhost:9000/jspm_packages/npm/[email protected] /cdn-cgi/l/email-protection/aurelia-metadata.js:49:15)
    at eval (http://localhost:9000/jspm_packages/npm/[email protected] /cdn-cgi/l/email-protection/aurelia-dependency-injection.js:245:33)
    at execute (http://localhost:9000/dist/files-service.js:93:67)
    at u (http://localhost:9000/jspm_packages/system.js:5:97)
    at Object.execute (http://localhost:9000/jspm_packages/system.js:5:3188)
    at y (http://localhost:9000/jspm_packages/system.js:4:9948)
    at w (http://localhost:9000/jspm_packages/system.js:4:10327)
    at p (http://localhost:9000/jspm_packages/system.js:4:8205)
    at h (http://localhost:9000/jspm_packages/system.js:4:8590)
    at http://localhost:9000/jspm_packages/system.js:4:6896
    Error loading http://localhost:9000/dist/files-service.js

知道可能出了什么问题吗?顺便说一句,如果工作人员未声明为瞬态,则没有问题(在这种情况下不需要所有这些映射)。


Add the aurelia-pal-browser打包到您的 SystemJS 映射,然后将代码更新为如下所示:

// Import Aurelia's [p]latform [a]bstraction [l]ibrary for the browser.
// The PAL does some basic feature detection and serves as an abstraction for
// browser globals.
System.import('aurelia-pal-browser')
  .then(pal => pal.initialize())
  // now import a small set of polyfills for things like Reflect.defineMetadata
  .then(() => System.import('aurelia-polyfills'))
  // now you should be all set...
  .then(() => System.import('files-service')
  .then(({ FilesService }) => {  // <-- look how fancy I am! ES6 destructuring FTW - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
    let fs = new FilesService();
  });

看起来您想在工作人员中使用容器 - 这是一个示例:

let container = null;

System.import('aurelia-pal-browser')
  .then(({ initialize }) => initialize())
  .then(() => System.import('aurelia-polyfills'))
  // import DI and instantiate a container for the worker to use.
  .then(() => System.import('aurelia-dependency-injection'))
  .then(({ Container }) => container = new Container())
  // use the container...
  .then(() => System.import('files-service')
  .then(({ FilesService }) => {
    let fs = container.get(FilesService);
  });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试加载瞬态 Web Worker 时出现“Reflect.defineMetadata”错误 的相关文章

  • 如何使用 Node.js 在 Firebase 中注册用户?

    PROBLEM 0 用户是在 Firebase 的身份验证系统中创建的 我在 身份验证 选项卡中看到它 1 但没有对数据库进行任何更改 2 页面似乎无限加载 3 控制台仅记录 Started 1 CODE router post regis
  • 如何使用 java/vb 脚本调用自定义 ActiveX dll 中的方法

    我使用 VB6 创建了一个 ActiveX dll 并使用打包和部署向导将其打包 生成了一个 cab 文件和一个演示 HTML 页面 此 ActiveX dll 包含一个 simgle 方法 该方法返回字符串且不接受任何参数 我遇到的麻烦是
  • 等待 JavaScript 中 Json 调用完成

    我正在使用下面的json调用在我的 javascript 方法中 function go123 var cityName var temp getJSON https abc in api city callback args functi
  • 从 JavaScript 中 Firebase 数据库的查询结果中获取特定子项的值

    我在 Firebase 上有这个示例数据库 样本数据库 我有一个index html 其中有这两个输入文本 div class login form h2 Login Form h2 div
  • 将数组中的所有值作为参数传递给函数

    我有一个值数组 a b c d 我需要将它们作为参数传递给函数 window myFunction a b c d 如果我可以将数组 对象传递到函数中 那么这会更容易 但这些函数是由其他人编写的或已经存在 我无法更改它们 它们需要作为单独的
  • 如何使用 JqGrid 子网格进行内联编辑?

    我知道如何使用主网格进行内联编辑 但是有没有办法对子网格进行内联编辑 这是我的 JS 文件 function var lastsel list jqGrid url example php postData q 1 datatype jso
  • 了解执行模型和事件循环

    我读过很多关于JavaScript单线程执行模型 事件循环和事件队列的文章 但有一件事尚不清楚 我创建了一个小提琴来说明我的问题 http jsfiddle net yzpmf67f http jsfiddle net yzpmf67f
  • 是否可以用 json 进行表达式/计算?

    我使用出色的 json server 作为应用程序的后端 它对于访问自定义端点以检索一些数据非常有用 但是如果它允许我进行计算 表达式以便我也可以模仿后端行为 那将会非常有用 以这个数据结构为例 products name football
  • 如何最好地实现多个重叠元素的翻转和推出事件?

    Problem 我正在开发一个网站 其中有一个 拨号盘 显示代表伞式公司不同部门的多个选项卡 目前我已经用 HTML CSS 准备好了一切 每个选项卡的定位 内圈处于较高位置z index因为选项卡在滚动时需要向外动画 我可以实现这部分 选
  • HTML5 拖放 - 没有透明度?

    当我将一个元素拖放到页面上时 该元素会变成 幻影 基本上它获得了一些透明度值 有什么办法可以做到吗opacity 1 看来是做不到了 拖动的元素被放入具有自己的不透明度 低于 1 的容器中 这意味着虽然您可以降低拖动元素的不透明度 但您无法
  • 单击窗口后才检测到 keydown

    在我的 Web 应用程序中 我有一个用于打开菜单的键的事件侦听器 仅当我单击页面上的任意位置后 此功能才可以正常工作 我尝试将焦点添加到窗口加载 但这仍然不会让 keydown 函数运行 直到我单击页面上的某个位置之后 有谁知道这是否可能
  • 为什么严格模式下不允许使用八进制数字文字(解决方法是什么?)

    为什么八进制数字文字不允许JavaScript 严格模式 https developer mozilla org en docs Web JavaScript Reference Strict mode 有什么害处呢 use strict
  • CKEditor TypeError:c[a] 在 CodeIgniter 中未定义

    我正在尝试在基于 codeigniter 的网站中安装 CKEditor 并且我已按照本教程进行操作 Codeigniter 教程中的 CKEditor http nukium com developpement php framework
  • 将 javascript 变量发送到服务器端 ASP .NET

    我需要在回发时将 JavaScript 数据传递到服务器端 Exvar jsVariableToPass new Object jsVariableToPass key1 value1 jsVariableToPass key2 value
  • 如何在 svelte 中制作搜索过滤器

    我有两个组件在组件树中距离很远 我对如何在两者之间进行通信存有疑问 我有搜索组件 listItems 和商店 商店 svelte
  • 如何在变量名中使用变量

    所以我正在使用这样的 json 变量 opponentInvData item1 它包含项目 1 到 6 我需要动态访问不同的项目并将它们设置为空 itemNum 是我需要访问的特定项目 我正在尝试使用 eval 函数 var itemNu
  • 在javascript中定义Date.parse的格式[重复]

    这个问题在这里已经有答案了 我正在使用 Date parse 将字符串转换为 JavaScript 中的日期 但是 如果字符串看起来像 10 11 2016 它会被解释为 2016 年 10 月 11 日 我需要将其解释为 2016 年 1
  • Safari 的 Javascript 与 document.write 的问题

    我的问题只发生在 Safari 上 IE FF Chrome 和 Opera 都可以完美运行 我正在向 DOM 添加一个对象 与 YouTube 的方式完全相同 具体取决于 ActiveX 或 NPAPI 因此在确定写入对象类型后 我通过以
  • 将元素添加到 D3 圆包节点

    我正在尝试制作一个可缩放的圆形包装图 我希望每个子圆圈包含一个较小的图表 该图表始终具有相同的结构 即 4 列 只有条形的高度会改变 我尝试添加一个简单的rect到目前为止我的图表 但矩形没有添加到圆圈中并且是静态的 JS var marg
  • 截断段落前 100 个字符并隐藏段落的其余内容,以通过更多/更少链接显示/隐藏其余内容

    我有一个超过 500 个字符的段落 我只想获取最初的 100 个字符并隐藏其余部分 我还想在 100 个字符旁边插入 更多 链接 单击更多链接时 整个段落应显示并编辑文本 更多 到 更少 单击 更少 时 它应切换行为 段落是动态生成的 我无

随机推荐

  • 如何使用 axios 下载包含多种类型文件的 zip

    在我的 vueJs 应用程序中 我有以下 axios POST api 调用 该调用应该返回我希望保存在 zip 文件夹中的多个文件 但是 当我使用以下 axios 方法时 我无法打开我的 zip 并且出现错误 提示 myfolder zi
  • 重写整个 git 历史记录

    很久以前 我在 github 上分叉了一个 repo 并对几个不相关的功能做了相当多的更改 当时我对 git 基本上一无所知 所以我的提交基本上只是 自上次以来我碰巧做过的事情 我记得提交的时间是 我想向上游贡献一些更改 但在我的存储库当前
  • Javascript 相当于 Rails try 方法

    在 Rails 中我可以这样做 x user try name 这个方法返回nil if user is nil else user name Here name是一个定义在user object 我知道可以使用if then else在
  • 强制 selenium 暂停并等待字段可用

    下面是我的 python 脚本中的一段代码 它读取一个 Excel 文件并将行中的单元格分配给一个变量 然后将该变量输入到浏览器中的字段中 它工作得很好 在大多数情况下 我想做的是在浏览器加载页面后设置某种循环以执行以下操作 通过某个 ID
  • 使用 Node.js 处理 SAML 的身份提供商端

    我需要实现一个应该能够实现的身份提供者服务 使用node js 获取 验证和解析 使用私钥和证书 来自 SP 的身份验证请求example https www samltool com generic sso req php 如果一切有效
  • 隐藏 C 结构体中的成员

    我一直在阅读有关 C 语言中的 OOP 的内容 但我从来不喜欢你不能像 C 中那样拥有私有数据成员 但后来我想到你可以创建 2 个结构 一种是在头文件中定义 另一种是在源文件中定义 in somestruct h typedef struc
  • PHP 语法高亮[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个PHP 语法高亮引擎可以定制 即我可以提供我的自己的分词器对于新语言 并且可以处理多种语
  • Python - 读取电子表格

    我需要知道的是 我可以让Python读取电子表格 最好是Microsoft Excel 然后解析信息并将其输入到方程中吗 它适用于赛马程序 其中多匹马的信息将位于一个 Excel 电子表格中的不同行或列中 我需要知道是否可以分别对每匹马进行
  • WooCommerce:向购物车中的每个项目添加输入字段

    我一直在尝试向购物车中的每个项目添加一个文本输入字段 并将用户输入提交到产品的元信息 已经2天了 我还没有成功 我的目标是 获取用户对添加到购物车中的每件商品的输入 在订单的元信息中显示该输入 在发送给客户的确认电子邮件中显示该输入 到目前
  • 密码保护数据库

    我使用 Entity Framework Core 1 0 在 C 桌面应用程序中管理 SQLite 数据库 如何使用密码保护数据库 我知道如何使用 NET 类 System Data SQLite 但是如何使用 Entity Framew
  • numpy 的复数问题

    我试图再次翻译一些 matlab 代码 但我遇到了另一个问题 代码本身非常简单 只是 4 节点旋转因子的演示 这是我的尝试 from numpy import from matplotlib import pyplot as plt x z
  • 如何使重定向视图跳转到django中的某个部分

    所以我的模板中有一个部分 div Comments go here div 现在我希望我的 django 重定向功能重定向到此页面并跳转到此 div id return redirect post detail post slug 我该放在
  • “event.layerX 和 event.layerY 在 WebKit 中已损坏并已弃用。”错误

    我刚刚将 Chrome 更新到版本 16 0 912 63 现在使用 jQuery 1 7 1 时出现数百个错误 似乎只要移动鼠标就会触发 event layerX and event layerY are broken and depre
  • 避免与策略模式耦合

    我试图将策略模式应用于特定情况 但遇到了如何避免将每个具体策略耦合到为其提供数据的上下文对象的问题 以下是模式的简化情况 该模式以几种不同的方式发生 但应以类似的方式处理 我们有一个对象Acquisition它提供与特定时间框架相关的数据
  • Visual Studio 2008 HTML 格式 - 它是否有效?

    这是另一个 Visual Studio 2008 HTML 格式问题 我想我要么在臭名昭著的糟糕 VS HTML 格式中发现了一个错误 要么我做错了什么 这就是我正在做的 我通过以下方式删除所有客户端标签 工具 gt 选项 gt 文本编辑器
  • CIImage 范围以像素或点为单位?

    我正在使用 CIImage 虽然我知道它不是线性图像 但它确实保存了一些数据 我的问题是 CIImage 的范围属性是否返回像素或点 根据文档 https developer apple com reference coreimage ci
  • 在包含中使用 $_SERVER['DOCUMENT_ROOT'] 是个好主意吗?

    例如 这是一个好主意吗 require once SERVER DOCUMENT ROOT include php 如果您在同一台服务器上有两个虚拟主机 一个用于实时 一个用于开发 并且具有不同的 Apache DocumentRoots
  • 用于生成和查看 Azure 块 Blob 和 Azure 文件共享的 SAS(共享访问签名)的工具或使用示例

    我正在寻找一个工具或使用示例来生成和查看 Azure Block Blob 和 Azure 文件共享的 SAS 共享访问签名 有很多块 Blob 和容器的示例 但 Azure 文件共享 SAS 示例或工具呢 创造能力Shared Acces
  • 使用 Android NDK 的本机代码的代码覆盖率

    我正在使用 Android NDK r16 为我的 Android 项目构建本机代码 我希望能够获得本机单元测试的代码覆盖率 这可能吗 根据我的研究 Android 中似乎没有默认提供此功能 我们需要在 Clang 中使用自定义编译器 链接
  • 尝试加载瞬态 Web Worker 时出现“Reflect.defineMetadata”错误

    我正在尝试从 Web Worker 内部加载 aurelia 框架 以便将 Worker 装饰为瞬态 这是工人装载机 importScripts jspm packages system js System config defaultJS