【问题标题】:WARN [middleware:karma]: Invalid file type, defaulting to js. tsWARN [middleware:karma]: 文件类型无效,默认为 js。 ts
【发布时间】:2019-07-06 03:25:49
【问题描述】:

当我通过 karma 运行单元测试时,我收到了这些警告:

12 02 2019 14:01:05.740:WARN [middleware:karma]: Invalid file type, defaulting to js. ts
12 02 2019 14:01:05.741:WARN [middleware:karma]: Invalid file type, defaulting to js. ts

我认为是karma.conf.js 文件的类型导致了问题,所以我将其更改为karma.conf.ts

但是问题仍然存在,所以如果有人能告诉我如何禁用此警告,那就太好了。

下面是我的 karma.conf.ts 文件

module.exports = function karmaConfig(config) {
    config.set({

        singleRun: true,

        frameworks: [
            'jasmine'
        ],

        files: [
            'sdk/**/*.spec.ts'
        ],

        preprocessors: {
            'sdk/**/*.spec.ts': ['webpack', 'sourcemap'],
            'sdk/**/!(*.spec).ts': ['coverage']
        },

        browsers: [
            'PhantomJS'
        ],

        reporters: [
            'progress',
            'coverage',
            'junit'
        ],

        coverageReporter: {
            dir: 'coverage/',
            reporters: [
                { type: 'text-summary' },
                { type: 'html' },
                {
                    type: 'lcov',
                    dir: 'reports',
                    subdir: 'coverage'
                }
            ]
        },

        junitReporter: {
            outputFile: 'reports/junit/TEST-karma.xml',
            useBrowserName: false
        },

        transports: ['polling'],

        webpack: require('./webpack.config'),

        webpackMiddleware: {
            stats: 'errors-only'
        },

        logLevel: config.LOG_INFO,

    });
};

我使用 webpack 4.16.5 和 karma 4.0.0

【问题讨论】:

  • 你把信息倒退了。它切换到js(或“默认为js)”,因为它是一个.ts 文件。不过,我同意消息中的 ts 位置可能会产生误导。
  • 谢谢@Seblor,但是,该消息在我将其切换到.ts 文件之前发生。因此,我将其切换到 .ts 文件以避免该消息。但它没有用
  • 你能给我们你的文件结构,以及你使用的工具吗?也许 Karma 使用的其他文件是 .ts 文件。
  • 谢谢@Seblor。这很有趣,我在 karma.js 中发现,不支持 .ts 文件,如 const FILE_TYPES = [ 'css', 'html', 'js', 'dart', 'module', 'dom' ]。现在我需要知道如何解决这个问题(我不想手动触摸那个文件:D
  • 有一个修复 karma 以更好地显示错误。实际调试它有什么运气吗?

标签: typescript webpack karma-jasmine karma-runner


【解决方案1】:

I assumed that the type of the karma.conf.js file caused the issue你是真的 但我认为原因是

文件:[ 'sdk/**/*.spec.ts' ], 我认为您应该将'sdk/**/*.spec.ts' 更改为'sdk/**/*.spec.js' 希望对您有所帮助。

【讨论】:

  • 不,这不是我想做的。问题是它需要支持.ts,而不仅仅是.js
  • 这个有更新吗?我也面临同样的问题...
【解决方案2】:

我遇到了同样的错误消息,我相信有类似的问题,但在我的情况下是 .ttf 字体文件导致:

19 11 2019 22:12:35.398:WARN [middleware:karma]: Invalid file type (ttf), defaulting to js.

来自http://karma-runner.github.io/4.0/config/files.html

css 和 html 类型创建链接元素; js、dart 和模块 元素创建脚本元素。 dom类型包含文件 页面中的内容,例如用于测试组件组合 HTML 和 JS。

所以我相信如果你想添加一个具有不同文件类型的资源作为链接,它应该在文件配置中键入 HTML。以下对我有用:

{
    pattern: 'resources/fonts/**/*.ttf',
    type: 'html',
    served: true,
    included: true
},

不确定 .ts 文件应如何包含在 HTML 页面中(不应该将它们转译为 JS 吗?)但您可以尝试将 type 设置为 js

【讨论】:

    猜你喜欢
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多