Karma、PhantomJS 和 es6 Promise

2024-03-08

我正在编写一个使用新的 es6 Promise 的 JavaScript 库。我可以在 Firefox 中测试该库,因为 Promise 已定义。但是,当我尝试使用 Karma 和 PhantomJS 测试我的代码时,出现错误Can't find variable: Promise.。我猜测这是因为 PhantomJS 浏览器还不支持 es6 Promise。

我如何配置 Karma 来为 Promise 引入 Polyfill?


您只需安装即可引入 Babel polyfillBabel Polyfill https://www.npmjs.com/package/babel-polyfill:

npm install --save-dev babel-polyfill

然后将 polyfill 文件包含在源文件和测试文件之前files你的部分karma.conf.js:

files: [
  'node_modules/babel-polyfill/dist/polyfill.js',
  'index.js',   //could be /src/**/*.js
  'index.spec.js' //could be /test/**/*.spec.js
],

除非您知道所有目标浏览器都支持 Promise,否则您可能也想将此填充应用到您发布的版本中。

如果您真的喜欢冒险,您可以使用 Browserify 拉取文件以使您的测试更加模块化,然后使用 Babelify 将 ES6 转换为 ES5。我创建了一个包含这些内容的示例项目以及涉及 Promise(在 PhantomJS2 上运行)的工作测试以供参考 https://gist.github.com/spikeheap/3dfcf46caf60bf076edc.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Karma、PhantomJS 和 es6 Promise 的相关文章

  • 在生产中使用 babel-node 可以吗

    我一直在使用 babel node 和 browserify 以及 babelify 转换来开发一个网站 以支持 ES6 语法 我只是想知道 我可以在生产中运行它吗 babel node server 而不是 node server 要在
  • 如何在react-select v2中创建optgroup?

    我想在我的反应选择列表中包含 optgroups 但它似乎没有记录在任何地方 我有以下结构 是从评论中提取的https github com JedWatson react select issues 59 https github com
  • Visual Studio IDE 中功能后的空间

    如何设置 Visual Studio 中的设计以在我的 javascript 函数后面放置一个空格 目前 当我按下返回键时 我得到了这个 var myfunc function 当我想要这个的时候 var myfunc function 知
  • Chrome 内存/垃圾收集问题

    我在使用 Chrome 时遇到内存 垃圾收集问题 我正在开发一个照片上传网站 该网站允许我的客户使用 HTML5 和文件 API 拖放照片进行上传 因此这在 IE 中不起作用 它仅适用于 Chrome 和 FF 我还没有在 Safari O
  • Twitter Bootstrap 轮播在加载时自动播放

    使用twitter bootstrap框架 如何调用轮播来 自动滑动 这意味着当页面加载时 轮播会自动滚动 我尝试过 javascript onLoad click 函数 a 下一个链接的 但这不起作用 你应该这样做Twitter Boot
  • 变量前面加双下划线

    我的节点代码中有以下代码片段 var fs require fs fs readdir dirname function err files console log files 为什么变量 dirname 有双下划线 我知道一个下划线是私有
  • JavaScript 原型 - 请澄清

    有人可以帮我理解原型属性吗 我不明白原型属性是函数的属性还是函数内部的属性 假设我们创建以下构造函数 Food 此时 函数 Food 具有 Food prototype 属性 由于 Food 是 Object 的实例 因此这意味着 Obec
  • 数据表“footerCallback”函数未在页脚中显示结果

    我尝试获取每列的总和并将结果显示在页脚中 我在用着 页脚回调 https datatables net reference option footerCallbackDatatables提供的功能 但是它在页脚中没有显示任何内容 数据表解释
  • AngularJS - 服务、工厂、过滤器等中的依赖注入

    因此 我想在我的 Angular 应用程序中使用一些插件和库 目前 我只是引用这些函数 方法 因为它们是在 99 的应用程序中以完全忽略依赖注入的方式使用的 我有 例如 javascript 库 MomentJS 它处理格式化和验证日期 并
  • 属性访问器(getter)的扩展运算符问题

    我很难理解为什么以下代码存在一些问题https jsfiddle net q4w6e3n3 3 https jsfiddle net q4w6e3n3 3 Note 所有示例均在 chrome 版本 52 0 2743 116 中进行测试
  • jspm / jQuery / TypeScript - 模块“jquery”没有默认导出

    我正在尝试使用 TypeScript 和 jspm system js 来引导 Web 应用程序进行模块加载 我还没有走多远 安装 jspm 后 并使用它来安装 jQuery jspm install jquery 以及基础知识 main
  • 很奇怪!调用 window.location 或 location.replace 会重定向到该页面,然后再次返回!

    我处于调试模式 因此我可以看到正在访问哪个页面 当我打电话时window location or window location replace 它会转到该页面 然后返回原始页面 怎么会这样 解决方案是添加 window location
  • 错误:找不到模块“jasmine-core”

    我安装了以下内容进行测试 devDependencies jasmine core 2 4 1 karma 0 13 22 karma jasmine 0 3 7 karma phantomjs launcher 1 0 0 运行后karm
  • 当表格在 IE 中获得焦点时,表格滚动条会向上跳跃

    问题 我有一个table有包装的div with overflow y auto 一旦table获得焦点 滚动条向上跳 我怎样才能防止这种情况发生 我经历过这种行为IE9 不在 Chrome 中 请注意 我已添加tabindex到桌子上 以
  • 如何在服务器端按钮点击时关闭当前标签页?

    我尝试在确认后关闭当前选项卡 因此我将以下代码放在确认按钮的末尾 但选项卡没有关闭 string jScript ClientScript RegisterClientScriptBlock this GetType keyClientBl
  • 更改特定字符串的颜色

    有谁知道如果将特定单词输入文本区域 我如何更改它的颜色 例如 如果用户输入 你好我的朋友 它会动态地将 你好 更改为绿色 在google上花了很多时间 找不到任何相关的东西 谢谢 textareas 的设计目的不是选择性着色
  • 表单序列化javascript(无框架)

    想知道 javascript 中是否有一个没有 jquery 或任何框架的函数可以让我序列化表单并访问序列化版本 2023 年更新 Use FormData https developer mozilla org en US docs We
  • 获取 byte[]

    我有一个 html 画布 如下所示 output is a base64string of image data var oldImage new Image oldImage onload function var resizeRatio
  • window.open 使用 css 样式

    我想设计我的 window open 目前 我的网页上有一些项目由于解析了某个类而打开 然后在新窗口中打开指定的文本 我想更改字体大小 字体和填充等 这是我的 JavaScript 代码
  • 指定在任何 Jest 设置发生之前运行的代码

    tl dr 是 1 我怎样才能让Jest使用原生的require函数可以在任何地方加载我的测试中的所有模块 2 我将在哪里 如何进行修改 即替换为esm加载程序 https github com standard things esm ht

随机推荐

  • 返回 *this 和 this 之间的区别 - C++

    Class A Code A operator code return A operator code return 我什么时候应该回来 this or this 我明白this是一个指针 并且 this是指针的取消引用 但是当函数需要按引
  • 从文件中读取为 char 数组

    我正在从文件中读取 当我读取时 它会逐行读取并打印它 我想要的正是我想要一个 char 数组来保存文件中的所有字符并打印一次 这是我的代码 if strcmp str 0 0 FILE filecomand char fname 40 ch
  • 如何从单独的范围中提取唯一值并连接到同一范围上的相邻列(偏移量 (,-1))?

    I need to extract the unique values from a separate ranges and concatenate to the adjacent column offset 1 on the same r
  • React Native:如何在不使用NavigatorIOS组件的情况下切换页面?

    我是 React js 和 React Native 的新手 我想知道如何在不依赖 navigatorIOS 或 navigator 组件的情况下从一个页面 组件 导航到另一个页面 组件 在Hybrid开发模式下 很简单 只要添加html元
  • 将 OpenCV 窗口嵌入到 Qt GUI 中

    最近OpenCV升级了展示窗口 http opencv willowgarage com documentation c highgui qt new functions html 当它在 Qt 中使用时 它看起来非常好 但是我没有发现它有
  • 所有属性的 PropertyChanged:消息=未找到属性

    我想提高PropertyChanged我的全部 20 处房产ViewModel一次并得到解决方案 RaisePropertyChanged String Empty see C WPF ViewModel 中所有属性的 PropertyCh
  • 检测 Rails has_many 中的变化:通过关系

    我有一个模型 有多个 has many 和 has many through 模型关系 例如 在我的 User 类中 我有 has many 语言 通过 profile languages 我希望能够使用 User changes 函数检测
  • Pyserial,从 OBD 设备获取额外信息

    我是编程新手 正在尝试使用 OBD II 设备与我的车辆进行通信 串口转USB 我已经完成了我想要它做的事情 但我得到了我输入的命令来打印出来 如何从设备获取信息 这是我的代码 我正在使用Python 3 2 3 import serial
  • 为什么我的 opengl 输出对于不同的设备不同?

    我创建了一个 Android 应用程序 用于绘制直线 圆 通过在 OpenGLES 2 0 中使用 GLSurfaceView 就像 Auto cad 应用程序一样 该应用程序与 Google Nexus 7 配合得很好 从某种意义上说 如
  • 类库找不到MembershipUser

    我已将一个类库项目添加到我的应用程序中 在我的一个课程中 我需要使用 MembershipUser 类 但项目找不到它 我添加了对 System Web System Web Security 和 System Security Princ
  • 查找开始和结束位置/运行索引/连续值

    问题 给定一个原子向量 找到向量中游程的开始和结束索引 带有运行的示例向量 x rev rep 6 10 1 5 1 10 10 10 10 10 9 9 9 9 8 8 8 7 7 6 输出来自rle rle x Run Length E
  • As3:将重叠的矩形绘制到精灵并应用 alpha

    我需要画画独立的矩形到精灵 但是重叠区域如果我申请就会可见alpha到我的精灵 精灵将淡入和淡出 var spBox Sprite new Sprite this addChild spBox spBox graphics beginFil
  • 在 Rails 中压缩目录[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我如何在 ruby on Rails
  • Go 中如何返回 Nil 字符串?

    我有一个函数在某些情况下返回一个字符串 即当程序在 Linux 或 MacOS 中运行时 否则返回值应该为 nil 以便在代码中进一步省略一些特定于操作系统的检查 func test response string if runtime G
  • JavaScript 中的“如果调试”?

    JavaScript 或 Visual Studio 中是否有任何内容可以检测代码是否在调试模式下使用 类似于 C 中的 if DEBUG 但对于 JavaScript 来说 有点晚了 但我也需要同样的东西 并且在找到可行的解决方案之前不能
  • 使 Android 应用程序不适用于平板电脑

    我正在 Play 商店中发布我的应用程序 但我不希望它适用于平板电脑 我怎样才能实现它 我不想手动排除 Android 开发者控制台中的每一个平板电脑 但我确实需要我的应用程序专门在智能手机上运行 编辑 我按照你的建议做了 但结果是这样的
  • 如何通过单元测试来测试资源控制器

    我有以下标准的反应管理结构设置 一切都按预期工作 资源从端点获取数据GET LIST and GET ONE我的问题是我想测试CandidateView组件 我不知道如何向它传递一些模拟数据以检查渲染时它将包含所有预期的数据
  • 奇怪的行为:列表理解中的 Lambda [重复]

    这个问题在这里已经有答案了 在Python 2 6中 x for x in lambda m for m in 1 2 3 结果是 3 3 3 我期望输出为 1 2 3 即使使用非列表理解方法 我也会遇到完全相同的问题 即使在我将 m 复制
  • Quercus (Java) 比原生 PHP 更快吗?

    如果是这样 为什么 或者也许更好的问题是 何时 我发现了一些零散的评论 例如这个帖子 https stackoverflow com questions 777356 is quercus a viable replacement for
  • Karma、PhantomJS 和 es6 Promise

    我正在编写一个使用新的 es6 Promise 的 JavaScript 库 我可以在 Firefox 中测试该库 因为 Promise 已定义 但是 当我尝试使用 Karma 和 PhantomJS 测试我的代码时 出现错误Can t f