Как я могу заставить karma-webpack уважать заявленных загрузчиков? - PullRequest
0 голосов
/ 13 сентября 2018

Мне бы хотелось проверить работоспособность. Я запускаю тесты на нескольких веб-компонентах, используя karma + webpack (поэтому karma-webpack). Само приложение компилируется, и все это прекрасно. Но когда я пытаюсь сделать то же самое с помощью karma-webpack (даже с использованием того же самого конфига), это, похоже, не работает. Он продолжает выдавать ошибки при компиляции, когда я импортирую все, что не является js, какой веб-пакет должен был обработать. Поэтому для простоты (это безголовые юнит-тесты), если это что-то из этого, попытка просто null-loader их:

test.webpack.config.js

module.exports = {
  module: {
    devtool: "inline-source-map",
    module: {
      rules: [
        {
          test: /\.(png|svg|jpg|gif|scss)$/,
          loader: "null-loader"
        },
        {
          test: /\.js$/,
          loader: "babel-loader",
          options: {
            cacheDirectory: true
          }
        }
      ]
    }
  }
};

karma.conf.js

const path = require("path");

module.exports = function(config) {
  config.set({
    basePath: "",
    singleRun: true,
    browsers: ["ChromeHeadlessNoSandbox", "FirefoxHeadless"],
    customLaunchers: {
      ChromeHeadlessNoSandbox: {
        base: "ChromeHeadless",
        flags: ["--disable-gpu", "--no-sandbox"]
      },
      FirefoxHeadless: {
        base: "Firefox",
        flags: ["-headless"]
      }
    },
    frameworks: ["mocha", "sinon-chai"],
    files: [
      {
        pattern:
          "../../node_modules/@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js",
        watched: false
      },
      {
        pattern:
          "../../node_modules/@webcomponents/webcomponentsjs/webcomponents-bundle.js",
        watched: false
      },
      "test/unit/index.js"
    ],
    preprocessors: {
      "test/unit/index.js": ["webpack", "sourcemap"]
    },
    reporters: ["dots"],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    client: {
      mocha: {
        reporter: "html",
        ui: "bdd"
      },
      chai: {
        includeStack: true
      }
    },

    webpack: require("./test.webpack.config"),

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

    webpackServer: {
      noInfo: true
    },

    webpack: {
      output: {
        filename: "[name]"
      }
    }
  });
};

Получившаяся ошибка будет выглядеть примерно так:

ERROR in ../my/project/src/assets/images/_proto/dashboard.png 1:0 Module parse failed: Unexpected character '�' (1:0) You may need an appropriate loader to handle this file type. (Source code omitted for this binary file)

1 Ответ

0 голосов
/ 13 сентября 2018

Итак, мы объявили webpack дважды.Вторая декларация вышла за рамки первой.: '(

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...