我们最近将应用程序从 Angular 6 迁移到 12 ,一切看起来都很好,我能够运行应用程序(npm start 正在工作)并测试 UI 功能,但是当我在本地运行我的 Angular 单元测试(npm run test )时抛出错误,这只发生在我的机器上(其他同行的单元测试运行没有问题)
03 03 2022 09:17:14.914:DEBUG [reporter]: Trying to load reporter: @angular-devkit/build-angular--event-reporter
03 03 2022 09:17:14.927:DEBUG [reporter]: Trying to load color-version of reporter: @angular-devkit/build-angular--event-reporter (@angular-devkit/build-angular--event-reporter_color)
03 03 2022 09:17:14.930:DEBUG [reporter]: Couldn't load color-version.
03 03 2022 09:17:14.932:DEBUG [reporter]: Trying to load reporter: @angular-devkit/build-angular--sourcemap-reporter
03 03 2022 09:17:14.933:DEBUG [reporter]: Trying to load color-version of reporter: @angular-devkit/build-angular--sourcemap-reporter (@angular-devkit/build-angular--sourcemap-reporter_color)
03 03 2022 09:17:14.942:DEBUG [reporter]: Couldn't load color-version.
我尝试重新安装node/cli/npm安装一切......仍然没有运气
以前有人见过这个错误吗?感谢您的回复....
“无法加载颜色版本”是一条调试级消息,通知您 Karma 无法找到报告器的“彩色”版本 (
@angular-devkit/build-angular--event-reporter_color
)。
您可能在本地而不是其他地方看到此消息的一个原因是您已将日志级别设置为调试 (
--log-level debug
)。
TLDR
这些消息仅在调试日志中找到,可能会被忽略。
血淋淋的细节
在 Karma 中,这里有一个 createReporters 函数负责此输出,只有当日志记录级别设置为调试时才能看到。
https://github.com/karma-runner/karma/blob/master/lib/reporter.js
加载所有报告器后,代码将继续加载报告器的颜色版本,代码如下:
const colorName = name + '_color'
if (!names.includes(colorName)) {
try {
log.debug(`Trying to load color-version of reporter: ${name} (${colorName})`)
reporters.push(injector.createChild([locals], ['reporter:' + colorName]).get('reporter:' + name))
} catch (e) {
log.debug('Couldn\'t load color-version.')
}
}
在 about 代码中,迭代配置中记者姓名的列表,加载当前记者姓名。加载该报告器后,假设已找到该报告器,代码将尝试加载具有该名称并附加“_color”的报告器。如果无法加载没有“_color”名称的报告器,则会写入一条错误消息并发出一个事件,表明存在加载错误。但是,无法加载该加载程序的“_color”版本(扩展名?)只会导致发出调试消息,否则该消息不会出现在日志中,并且不会发出加载错误。据推测,无法加载“_color”版本不会出现任何特定问题。
仅供参考,根据代码,DOTS 和 PROGRESS 报告器似乎需要一个颜色扩展。由于 DOTS 和 PROGRESS 是 Karma 的一部分,因此无需加载任何其他内容即可找到它们。