问题标签 [karma-webpack]
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.
node.js - 如何在 Karma-Webpack 中使用 Node Typescript 类型
我已经为在 Karma 中转换我的 TS 文件配置了 Webpack。我还包括了 Node 和 CoreJS 类型。但是,当我尝试运行测试时,我得到...
我尝试使用添加 webpack-env npm install --save-dev @types/webpack-env
,但这给了我更多错误。
我的 Karma 配置看起来像这样......
版本
webpack 1.14.0,节点 v6.9.2,Typescript 2.1.4
webpack - What is the correct pattern for using webpack with karma?
The official docs seem to imply that you need to duplicate the webpack configuration---once when used outside of the tests, and again inside of karma.conf.
However, when I started to copy/paste the working webpack config, I started to get errors. For example, ES6 code wasn't transpiled (even though babel is configured). The commons chunk plugin wouldn't work as it gave an error. The karma.conf is shown below:
webpack - 如何防止 karma-webpack 创建供应商代码的源映射?
我经历了 Karma 测试运行器的“启动”时间非常慢,在分析运行后,我意识到最大的减速是由源映射的创建引起的。
更具体地说,假设我使用karma-webpack
webpack 作为预处理器,每次 karma 加载测试文件时,它都会被馈送到 webpack 为其生成源映射。
鉴于我没有拆分/分块我的应用程序和供应商代码,每个测试文件都获得相同的供应商源映射(内联)。
我认为我可以通过简单地防止node_modules/
文件发生源映射来解决此问题,但意识到您只能根据最终资产文件而不是输入源/模块文件来排除文件获取源映射。
所以我发现这个插件可以自动将我的应用程序和供应商代码拆分成单独的块(而不是必须手动列出每个供应商模块)。
然而,我在运行 Karma 时开始出现此错误:
ReferenceError: Can't find variable: webpackJsonp
我很确定这是因为 Karma 没有意识到供应商和应用程序代码被分成单独的块,因此只包括使用该files
选项配置的代码(即测试文件本身而不是供应商文件)。
似乎在files
预处理每个测试文件之前解析和处理了该配置选项,这意味着我认为不可能在files
选项中指定供应商块,因为 Karma 在尝试时不会知道它寻找它(为时过早)。
我能看到的唯一解决方案是:
- 更改 Karma 的实现方式,使其可以处理供应商和应用程序块文件的分离。
- 不要使用
karma-webpack
和预处理,而是在测试模式下构建应用程序,然后运行测试构建目录的 Karma(以便供应商块足够早地存在)。
有没有我错过的解决方案?
我觉得奇怪,这似乎不是一个常见的问题。
编辑 1
我找到了这个,但是那里的人建议在 webpack 配置中使用多个入口点(即一个用于应用程序,一个用于供应商)。我会尝试看看这是否适用于 Karma,但它仍然有一个很大的缺点(在我看来)你必须手动跟踪你放入vendor
数组中的内容。即每次你安装一个包你必须把它添加到数组中,反之亦然。
编辑 2
在我将源映射 webpack 插件配置为排除供应商文件之前,使用多个入口点(在 webpack 配置中)甚至不起作用(而它会使用webpack-split-by-path
插件)。
我将尝试实施“先构建后测试”的方法。
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' }
webpack - karma-webpack 不生成 es5 代码
当我在幻像中运行测试时,出现以下错误:
当我检查由 webpack 生成的测试 js 文件时,const
尽管配置试图以es2015
. 所有测试都与源文件一起存在,例如src/components/comp1.js
,src/components/comp1.spec.js
conf/karma.conf.js
conf/webpack-test.conf.js
angular - awesome-ts-loader 在通过 karma-webpack 加载时无法正确处理文件
我有一个与 Webpack 捆绑在一起的 Angular 2 应用程序,并通过 Karma 和 karma-webpack 对 Jasmine 进行了测试。开发时,代码被正确捆绑和提供。测试时,awesome-ts-loader 在我的 .spec.ts 文件中抛出“模块解析失败”错误。
我正在使用他们的 Github 自述文件中描述的 karma-webpack “替代方法”来加载我的所有 .spec 文件(在 karma-shim.js 中):
根据几个示例存储库,我的 karma.conf.js 的相关部分配置正确:
我的 Webpack 配置中的所有内容都排列整齐(部分示例):
来自 tslint 的错误让我认为 Webpack 正确地找到了规范文件,但它可能没有被移交给 awesome-ts-loader,或者它没有加载 tsconfig.json。(同样,开发时一切正常)。
angularjs - Karma-webpack+angular TypeError: undefined is not an object (evalating '$httpBackend.expectPOST'
我收到以下错误
测试
Karma.conf.js 中与 webpack 相关的配置
你知道为什么我在注射时遇到麻烦吗?
angularjs - Karma-webpack:未知提供者:LeaveServiceProvider <- LeaveService
我的应用程序就像一个魅力,但我无法运行我的测试
版本
错误
Karma.conf.js
webpack.conf.js
测试/leave.service.js
问题
这是怎么回事?
相关:Karma-webpack+angular TypeError: undefined is not an object (evalating '$httpBackend.expectPOST'
typescript - 是否可以从 node_module 转换本地模块?
我有 2 个打字稿项目,其中包含很少的课程。我在 package.json 的 Project2 中添加了 Project1 的依赖项
这两个项目都是使用
“目标”:“es5”,“模块”:“es2015”,
我正在使用Karma-Webpack为项目设置测试环境。为了转译我使用babel-loader(预设:es2015)而不是 ts-loader 的代码。它转译来自 Project2 的代码,但来自位于 node_modules 中的 Project1 的代码没有被转译。由于它在运行测试时抛出以下错误
Chrome 55.0.2883 (Windows 10 0.0.0) ERROR Uncaught SyntaxError: Unexpected token export at spec.bundle.js:80972
我想知道是否可以使用 webpack 从 node_modules 转换本地模块?
注意:如果我将模块类型更改为“commonjs”,它可以工作,但这不是我正在寻找的解决方案。
有什么建议么???
webpack - Karma webpack 输出多个“webpack:等到捆绑完成”
在最近发布了 webpack 1.14.0 / karma 1.4.0 / karma-webpack 2.2.0 之后,当 karma 开始构建 webpack 时,我现在看到了很多这样的消息。
有时我会看到多达 6-8 个,它们似乎使构建时间更长。例如,这个:
到目前为止,它并没有阻止我的构建,但至少现在似乎有些东西正在锁定,即使是暂时的。还有人看到这个吗?如果这是我的问题,我想清理它,但正如我所说,我的配置文件没有改变,但现在这已经出现在最近来自 karma/webpack 产品系列的大量发布中过去 3 周。
我的问题是:
- 这条消息是什么意思?
- 可以做些什么来解决创建它们的问题?