2

我有多个条目的 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选项期望有一个字符串数组。有没有现成的解决方案?不要手动将对象转换为数组。

4

1 回答 1

3

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

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

编辑

由于 webpack 的工作方式,您不需要在 karma 配置中添加项目文件。仅仅因为您的测试将导入/需要测试主题文件,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'
  })
},
于 2016-04-21T12:53:21.233 回答