【问题标题】:[karma]: Error: Unable to resolve module [expose-loader?jQuery!jquery][karma]: Error: Unable to resolve module [expose-loader?jQuery!jquery]
【发布时间】:2017-09-30 19:44:44
【问题描述】:

我正在尝试为打字稿设置业力测试。

karma.conf.js

module.exports = function (config) {
    config.set({
        frameworks: ['jasmine', 'karma-typescript'],
        files: [
            {pattern: 'src/main/**/*.ts'}, // Actual code
            {pattern: 'src/test/**/*.ts'}, // Unit tests
        ],
        preprocessors: {
            'src/main/**/*.ts': ['karma-typescript', 'coverage'],
            'src/test/**/*.ts': ['karma-typescript']
        },
        reporters: ['progress', 'junit', 'coverage'],

        // the default configuration
        junitReporter: {
            ...
        },

        coverageReporter: {
            type: 'lcov',
            subdir: '.',
            dir: 'target/'
        },

        browsers: ['PhantomJS'],

        singleRun: true,
        autoWatch: true,
        logLevel: config.LOG_INFO,
        colors: true,
        port: 9876
     });
 };

代码本身除了:

import "expose-loader?jQuery!jquery";
import "expose-loader?Tether!tether";

import "../scss/main.scss";
import "bootstrap";

和测试:

it("should expose jquery to window",  () => {
    expect(window["jQuery"]).toBeDefined();
    expect(window["$"]).toBeDefined();
});

我遇到的问题是 karma 无法理解 webpack 中的expose-loader 给出的错误:

错误 [业力]:错误:无法解析模块 [expose-loader?jQuery!jquery]

有人可以解释一下吗? 如果我手动放置 jquery,如果没有暴露加载器,一切都可以正常工作,但我只想正确地完成它。

谢谢!

【问题讨论】:

    标签: javascript jquery typescript webpack karma-jasmine


    【解决方案1】:

    问题在于在“文件”中包含实际代码,而不是导入我要测试的类。所以我做了

    {pattern: 'src/main/**/!(file with expose-loader).ts', include:'false'}
    

    并排除负责公开全局对象的文件

    【讨论】:

      猜你喜欢
      • 2017-10-26
      • 1970-01-01
      • 2018-09-10
      • 2020-01-24
      • 1970-01-01
      • 2017-11-30
      • 2019-12-06
      • 2021-11-13
      • 2019-05-30
      相关资源
      最近更新 更多