使用karma-webpack插件时,TypeScript测试文件被阻止

Tom*_*ech 1 typescript karma-runner webpack karma-webpack

我正在尝试使用karma-webpack来构建我的打字稿测试以用于业力.

最近我的测试已停止运行.在开发人员控制台中,有这样的行,对应于包含我的测试的每个文件:

来自" http:// localhost:9876/base/tests/testFile.ts?[HASH] "的脚本由于不允许的MIME类型而被阻止

像karma这样的脚本标签是由karma生成的:

<script type="text/javascript" src="/base/tests/testFile.ts?[HASH]" crossorigin="anonymous"></script>
Run Code Online (Sandbox Code Playgroud)

(在两种情况下,[HASH]对应于时间戳)

如果我查看与错误消息相关的文件,看起来编译成功 - 每个文件都包含typescript编译器生成的JS,以及所有与webpack相关的东西.

我的业力配置如下:

module.exports = function (config) {
    config.set({
        plugins: [
            require('karma-firefox-launcher'),
            require('karma-webpack'),
            require('karma-tap')
        ],

        basePath: '',
        frameworks: ['tap'],
        files: ['tests/**/*.ts'],

        preprocessors: {
            'tests/**/*.ts': ['webpack']
        },

        webpack: {
            module: {
                rules: [
                    {
                        test: /\.tsx?$/,
                        exclude: /node_modules/,
                        use: [
                            "babel-loader",
                            "ts-loader"
                        ]
                    }
                ]
            },
            resolve: {
                extensions: [".webpack.js", ".web.js", ".js", ".ts", ".tsx", ".css"]
            },
            node: {
                fs: 'empty'
            }
        },

        reporters: ['progress'],
        port: 9876,
        colors: true,
        logLevel: config.LOG_INFO,
        autoWatch: true,
        browsers: ['Firefox'],
        singleRun: false
    });
};
Run Code Online (Sandbox Code Playgroud)

我尝试过使用Chromium而不是Firefox,但是我得到了类似的错误,所以我猜这个问题不是浏览器特有的.

如何防止脚本被阻止并让我的测试再次运行?


包装版本:

"karma": "1.4.1",
"karma-firefox-launcher": "1.0.0",
"karma-tap": "3.1.1",
"karma-webpack": "2.0.2",
"ts-loader": "2.0.0",
"typescript": "2.2.0",
"webpack": "2.2.1",
Run Code Online (Sandbox Code Playgroud)

Tom*_*ech 5

我发现了一个情侣问题,这表明这一增加的业力配置文件:

mime: {
    "text/x-typescript": ["ts", "tsx"]
}
Run Code Online (Sandbox Code Playgroud)

现在我的测试再次在Firefox和Chrome中运行.