Тестовые файлы TypeScript заблокированы при использовании плагина karma-webpack

Я пытаюсь использовать karma-webpack для создания тестов машинописного текста для использования с кармой.

Недавно мои тесты перестали запускаться. В консоли разработчика есть такие строки, соответствующие каждому из файлов, содержащих мои тесты:

Скрипт из «http://localhost:9876/base/tests/testFile.ts?[HASH]» был заблокирован из-за запрещенного типа MIME.

Есть теги сценария, подобные этому, которые генерируются кармой:

<script type="text/javascript" src="/base/tests/testFile.ts?[HASH]" crossorigin="anonymous"></script>

(В обоих случаях [HASH] соответствует метке времени)

Если я загляну внутрь файлов, связанных с сообщениями об ошибках, похоже, что компиляция прошла успешно — каждый файл содержит JS, сгенерированный компилятором машинописного текста, а также все, что связано с веб-пакетом.

Моя конфигурация кармы выглядит так:

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",

person Tom Fenech    schedule 06.02.2017    source источник


Ответы (1)


Я нашел пару из issues, которые предложили добавить это в файл конфигурации кармы:

mime: {
    "text/x-typescript": ["ts", "tsx"]
}

Теперь мои тесты снова запускаются в Firefox и Chrome.

person Tom Fenech    schedule 07.02.2017
comment
ты спасатель жизни! везде искал это - person eavidan; 24.03.2017