Здравствуйте!
Есть два webpack конфига: dev и prod. Они мержатся с common конфигом с помощью
webpack-mergeWebpack 2
Сокрщаенно:
webpack.dev.jsconst webpackMerge = require('webpack-merge');
const commonConfig = require('./webpack.common.js');
const config = {
...
};
module.exports = function (options) {
return webpackMerge(commonConfig({env: ENV}), config);
}
Сокрщаенно:
webpack.common.jsconst config = {
...
};
let pages = new Array();
let promise = new Promise((resolve, reject) => {
fs.readdir('./src/templates', function (err, files) {
files
.filter(function(file) { return file.substr(-4) === '.ejs'; })
.forEach(function (file) {
pages.push({
name: file.replace('.ejs', '.html'),
template: './src/templates/' + file
});
});
resolve(pages);
});
});
promise.then(result => {
result.forEach(function (page) {
config.plugins.push(
new HtmlWebpackPlugin({
template: page.template,
filename: page.name,
inject: 'body',
chunksSortMode: 'dependency',
minify: false
})
);
});
module.exports = function (options) {
return config;
};
});
Собственно понятно, что получаем ошибку
TypeError: commonConfig is not a function.
Фишка в том, что даже если не делать мердж, а просто в webpack.dev.js отдавать конфиг после resolve промиса, то вебпак это не воспринимает, говорит нет output.
Может можно как-то заставить ждать webpack или webpack-merge?
Буду очень признателен советам.