如何将 webpack 多个条目与业力一起使用?

How to use webpack multiple entries with karma?

我有多个条目的 webpack 配置:

entry: {
  'js/app': ['./css/app/style.scss', './js/app/index.js'],
  'js/vendor': ['./js/vendor/index.js', './css/vendor/index.css'],
  'js/snippets': './js/snippets/index.js'
},

而且我不想在业力配置中对所有这些路径进行硬编码。 只需包含 webpack 配置并从那里连接所有条目:

var webpackConfig = require('./webpack.config');
...
...
files: webpackConfig.entry,

file 选项期望有一个字符串数组。 有现成的解决方案吗?不要手动将对象转换为数组。

我有一个类似的设置,以下是对我有用的设置。在 karma 配置文件中,对于这些文件,只需配置您的测试。对我来说是这样的:

files: [
  './scripts/vendor/jquery.min.js',
  // any other global dependency
  './scripts/**/*.spec.js'
]

编辑

由于 webpack 的工作方式,您不需要在 karma 配置中添加项目文件。仅仅因为您的测试将 import/require 测试主题文件,webpack 将捆绑它并且测试将 运行.

结束编辑

然后在预处理器部分:

preprocessors: {
  './scripts/**/*.spec.js': ['webpack']
},

终于导入了webpack配置:

const webpackConfig = require('./webpack.config.js');

并且使用 karma-webpack 插件我添加了一个 webpack 部分如下:

webpack: {
  devtool: webpackConfig.devtool,
  resolve: webpackConfig.resolve,
  module: webpackConfig.module,
  externals: Object.assign({}, webpackConfig.externals, {
    chai: 'chai'
  })
},