/
eb
/
js-excel
Обзор
Документация
Войти
/
eb
/
js-excel
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
webpack.config.js
97 строк
2 KB
Evgeniy Budaev
Routing implemented
17 июн 2020, 10:58
17 июн 2020, 10:58
6622668
Код
Авторство
О чём код?
const path = require('path') const webpack = require('webpack') const {CleanWebpackPlugin} = require('clean-webpack-plugin') const HTMLWebpackPlugin = require('html-webpack-plugin') const CopyPlugin = require('copy-webpack-plugin') const MiniCssExtractPlugin = require('mini-css-extract-plugin') const isProd = process.env.NODE_ENV === 'production' const isDev = !isProd const filename = ext => isDev ? `bundle.${ext}` : `bundle.[hash].${ext}` const jsloaders = () => { const loaders = [ { loader: 'babel-loader', options: { presets: ['@babel/preset-env'], plugins: ['@babel/plugin-proposal-class-properties'] } } ] if (isDev) { loaders.push('eslint-loader') } return loaders } module.exports = { context: path.resolve(__dirname, 'src'), mode: 'development', entry: ['@babel/polyfill', './index.js'], output: { filename: filename('js'), path: path.resolve(__dirname, 'dist') }, resolve: { extensions: ['.js'], alias: { '@': path.resolve(__dirname, 'src'), '@core': path.resolve(__dirname, 'src/core') } }, devtool: isDev ? 'source-map' : false, devServer: { port: 3000, hot: isDev }, plugins: [ new CleanWebpackPlugin(), new HTMLWebpackPlugin({ template: "index.html", minify: { removeComments: isProd, collapseWhitespace: isProd } }), new CopyPlugin({ patterns: [ { from: path.resolve(__dirname, 'src/favicon.ico'), to: path.resolve(__dirname, 'dist'), } ], }), new MiniCssExtractPlugin({ filename: filename('css') }), new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV) }) ], module: { rules: [ { test: /\.s[ac]ss$/i, use: [ { loader: MiniCssExtractPlugin.loader, options: { hmr: isDev, reloadAll: true } }, 'css-loader', 'sass-loader', ], }, { test: /\.js$/, exclude: /node_modules/, use: jsloaders(), } ] } }