Как настроить сборку одного билда webpack
Сейчас у меня настроен webpack и по команде npm run build собирается два билда, один для сайта, второй для админки.
Хотелка моя в том, чтобы за раз я мог делать билд чего-то одного, либо сайта, либо админки. Одновременная сборка занимает продолжительное время
webpack.config.js содержит следующее
var path = require('path');
var webpack = require('webpack');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
var config = {
module: {},
};
var plugins = [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
}),
new MiniCssExtractPlugin({
filename: 'build.css'
})
];
var main_app_config = Object.assign({}, config, {
entry: ["@babel/polyfill", './src/index.js'],
output: {
path: path.resolve(__dirname, 'app/public_html/dist'),
filename: 'build.js',
library: 'App',
libraryTarget: 'umd'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
},
{
test: /\.(s*)css$/i,
use: [
MiniCssExtractPlugin.loader,
'css-loader',
'sass-loader'
]
},
],
},
plugins: plugins,
});
var admin_app_config = Object.assign({}, config, {
entry: ["@babel/polyfill", './src/index_admin.js'],
output: {
path: path.resolve(__dirname, 'app/public_html/admin_2/dist'),
filename: 'build.js',
library: 'App',
libraryTarget: 'umd'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
},
{
test: /\.(s*)css$/i,
use: [
MiniCssExtractPlugin.loader,
'css-loader',
'sass-loader'
]
},
],
},
plugins: plugins,
});
module.exports = [main_app_config, admin_app_config];
Ответы (1 шт):
Автор решения: NocteFury
→ Ссылка
В вызове вебпака можно указать флаг --config <путь к файлу>. Он позволяет указать вебпаку, какой именно файл конфигурации нужно использовать для сборки.
Таким образом вы можете в package.json указать два скрипта для запуска webpack с разными файлами конфигурации. А сами файлы создать разделив имеющийся на два. Думаю с этим разберетесь уже сами. :)