2016-04-21 71 views
2

我有多個條目的WebPack配置:如何使用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選項希望有一個字符串數組。 有沒有現成的解決方案?不要手動將對象轉換爲數組。

回答

3

我有一個類似的設置,這裏是什麼對我有用。在karma配置文件中,文件只是配置你的測試。對我來說是這樣的:

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

編輯

由於的WebPack是如何工作的,你並不需要添加的業力配置您的項目文件。只是由於您的測試將導入/需要測試主題文件,webpack將綁定它並且測試將運行。

EndEdit中在預處理器部分

然後:

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' 
    }) 
}, 
+0

以及如何包含項目文件/構建? –

+0

我想在你的測試中你正在導入/需要項目文件,所以webpack會照顧到這一點。 – vintem

+0

我更新了我的答案 – vintem