newsreader/webpack.common.babel.js
2023-08-06 15:21:58 +02:00

54 lines
1.3 KiB
JavaScript

import { resolve } from 'path';
import MiniCssExtractPlugin from 'mini-css-extract-plugin';
import CopyPlugin from 'copy-webpack-plugin';
export default {
resolve: { extensions: ['.js', '.scss'] },
entry: {
main: ['./src/newsreader/js/index.js', './src/newsreader/scss/index.scss'],
},
output: {
path: resolve(__dirname, 'src', 'newsreader', 'static'),
filename: 'js/[name].bundle.js',
clean: true,
},
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
use: { loader: 'babel-loader' },
},
{
test: /\.(sass|scss)$/,
use: [{ loader: MiniCssExtractPlugin.loader }, 'css-loader', 'sass-loader'],
},
{
test: /\.(ttf|woff|woff2|eot|otf)$/,
type: 'asset/resource',
generator: {
filename: 'fonts/[name][ext]',
},
},
{
test: /\.(png|svg|jpg|jpeg)$/,
type: 'asset/resource',
generator: {
filename: 'images/[name][ext]',
},
},
],
},
plugins: [
new MiniCssExtractPlugin({ filename: 'css/main.css' }),
new CopyPlugin({
patterns: [
{
from: './src/newsreader/assets/images/favicon.png',
to: 'images/',
},
],
}),
],
};