我正在尝试使用 karma-webpack 构建用于 karma 的打字稿测试。
最近我的测试已经停止运行。在开发人员控制台中,有这样的行,对应于包含我的测试的每个文件:
来自“<a href="http://localhost:9876/base/tests/testFile.ts?[HASH]" rel="nofollow noreferrer">http://localhost:9876/base/tests/testFile.ts 的脚本?[HASH]”由于不允许的 MIME 类型而被阻止
有这样的脚本标签是由业力生成的:
<script type="text/javascript" src="/base/tests/testFile.ts?[HASH]" crossorigin="anonymous"></script>
(在这两种情况下,都[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
});
};
我曾尝试使用 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",