配置 Karma https 服务器进行角度测试

问题描述 投票:0回答:1

Karma 已弃用,但自 v17.1 起仍然是 Angular CLI 配置的默认测试框架。我想在浏览器中测试需要 https 上下文的微妙加密功能,因此需要让 Karma 作为 https 服务器运行。

Karma 的配置文档描述了此设置:

httpsServerOptions: {
  key: fs.readFileSync('server.key', 'utf8'),
  cert: fs.readFileSync('server.crt', 'utf8')
},

我已准备好与“ngserve”一起使用的本地密钥和证书文件,但在加载 Karma 并直接导入 karma.config.js 中的函数时,默认情况下“fs”不可用,如下所示:

import {readFileSync} from "fs"

因此错误而失败:

语法错误:无法在模块外部使用 import 语句

刚接触 Angular 和 NodeJS,还没有找到任何有用的搜索结果。

node.js angular karma-jasmine karma-runner
1个回答
0
投票

Karma 文档很旧,并且对模块支持不清楚。我发布到 Karma 配置文档的链接说:

Karma 配置文件可以用 JavaScript、CoffeeScript 或 TypeScript 编写,并作为常规 Node.js 模块加载。

这让我认为 Karma 配置文件应该已经是模块的一部分。但 Karma 使用较旧的 ES 模块,因此当我更改 package.json 以包含

type: module
时,Karma 的其他部分将无法加载。解决方案很简单,只需使用
require
加载 'fs' 并且不要使用
type: module
:

const fs = require('fs')
© www.soinside.com 2019 - 2024. All rights reserved.