问题标签 [karma-babel-preprocessor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - RegeneratorRuntime 未定义
我正在尝试运行Karma-babel-preprocessor和直接的 ES6 生成器:
从这里我用 babel 生成了我的测试文件(ES6 => ES5):
babel src --watch --out-dir tests
然后我运行karma start
我得到错误:
ReferenceError: regeneratorRuntime 未定义”。
karma.conf.js 中的相关位:
我能够使用许多 ES6 特性,包括箭头。只是没有继续发电机。
karma-runner - Karma-babel require 没有定义,即使不使用 require
我有这个:
但是在运行 karma 时,require is not defined
即使不使用 require 也会出现错误。
有任何想法吗?
karma-jasmine - 业力覆盖(Jasmine、Babel、Webpack)
在对我的 karma.conf.js 进行更改以允许 Karma Coverage 之后,运行 karma 现在会失败。我不确定发生了什么。有什么想法吗?
我收到以下错误(下面还有更多类似的错误)
27 12 2016 06:35:35.997:ERROR [karma]: { 错误: MemoryFileSystem.readFileSync (/Users/lancepoehler/Documents/workspaces/SolarAnalysisClient/node_modules/memory-fs/lib/MemoryFileSystem.js: 114:10) 在 MemoryFileSystem.readFile (/Users/lancepoehler/Documents/workspaces/SolarAnalysisClient/node_modules/memory-fs/lib/MemoryFileSystem.js:297:21) 在 doRead (/Users/lancepoehler/Documents/workspaces/SolarAnalysisClient/ node_modules/karma-webpack/lib/karma-webpack.js:201:29) 在 Plugin.readFile (/Users/lancepoehler/Documents/workspaces/SolarAnalysisClient/node_modules/karma-webpack/lib/karma-webpack.js:205: 5) 在_combinedTickCallback (internal/process/next_tick.js:67:7) at process._tickCallback (internal/process/next_tick.js:98:9) 代码:'ENOENT',errno:34,消息:'没有这样的文件或目录',路径:'/_karma_webpack_/src/components/Error.js' }
typescript - 使用 typescript 和 karma 进行 Babelify 项目
设置和目标
Typescript 项目,带有 typescript mocha 测试。项目应该从 Typescript 转换为 ES6,然后通过Babel转换为几个可交付的包。
我想通过Karma(最终是BrowserStack)在浏览器中针对与 babel 生成的相同转换版本运行所有测试。
尝试和问题
我有 karma-typescript + mocha 工作,但只在 es2017 兼容的浏览器中工作。问题是在两者之间插入 babel。
我想我已经尝试了我能想象的一切,但即:
- karma-typescript-es6-transform:仅转换捆绑的 ES6 模块,而不是用户的代码。
- karma- browserify和babelify转换:browserify 似乎与 karma typescript 或至少它的转换系统不兼容。当 babel 找不到
some/some.js
文件时它会失败,该文件似乎只存在于 karma 内存中。 - karma-babel-preprocessor似乎是正确的方法。
以上还有许多变体以及更多变体,但都没有奏效。
有希望的设置karma-babel-preprocessor
我认为这应该是正确的方法,所以我发布了一个包含我当前状态的项目:https ://github.com/anpur/karma-typescript-babelify 。
这是我的一部分karma.conf.js
:
Karma 能够在此设置中转换 -> 转换 -> 捆绑它,但我遇到了一整套不同的奇怪问题(没有浏览器在这种状态下工作):
- 在 es2017 浏览器(Chrome)中:
Uncaught Error: Can't find entrypoint
forsome-test.ts
(mocha 可以正常工作,没有 babel 转换)。 - 在旧的 Firefox 44
TypeError: global is undefined
中。 - 在 IE 10
Unable to get property 'wrappers' of undefined or null reference
中。
PS - 上述模块/框架对我来说都不重要,所以我会对任何其他工作设置感到满意,它可以进行 typescript -> babel -> browserstack 测试。谢谢!
ecmascript-6 - 带有 Coverage 的 Karma 跑步者 - 预处理器不适用于 Javascript ES6 代码
我最近才开始在我们的 UI5 应用程序中使用 Karma runner。写了一些单元测试,运行它们......到目前为止一切都很好。
但是,现在我决定跟踪代码覆盖率。为了测量它,我需要在我的源代码上运行预处理器。这就是我偶然发现一个问题的地方 - 我目前正在努力使其工作并且都有一些问题
- npm 包
karma-coverage
作为预处理器 - 安装后,我在 karma.conf.js 中设置它像这样
这适用于helpers
文件夹,因为它只包含一个带有简单 javascript 的文件。但是,当它尝试处理controller
包含某些 ES6 代码文件的文件夹时,每个文件都会失败并出现以下错误
作为第二种选择,我尝试使用
karma-babel-preprocessor
应该能够处理 ES6 代码的。这就是我的 karma.conf.js 文件的样子预处理器:{“webapp/helpers// . js”:['babel'],“webapp/controller// . js”:['babel'],},
/li>
但是,这个甚至找不到js文件(即使地址与覆盖预处理器的情况相同)并返回此错误。
有人知道如何在使用这些包或任何其他包时获取覆盖数据吗?网络上有很多相互矛盾的信息,其中大部分都是几年前的,而各种与 karma 相关的 npm 包每个月都会不断出现,所以我真的不确定哪个最好用。
非常感谢