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 config を含めて、そこからすべてのエントリを接続するだけです。

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

ただし、fileオプションは文字列の配列を持つことを期待しています。それに対する準備ができている解決策はありますか?オブジェクトを手動で配列に変換しないでください。

4

1 に答える 1

3

私は同様の設定をしています。これが私のために働いたものです。カルマ構成ファイルでは、ファイルに対してテストを構成するだけです。私にとっては、次のようなものでした。

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

編集

webpack の仕組みにより、カルマ構成にプロジェクト ファイルを追加する必要はありません。テストがテスト対象ファイルをインポート/要求するという事実だけで、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 に答える