UNPKG

kk-webpack-base--config

Version:

Webpack config for kk-webpack-base

62 lines (58 loc) 1.86 kB
const path = require('path'); const { config } = require('./webpack.project-config.js'); const { copyThingPattern, isDev } = require('./webpack.helpers'); const ESLintPlugin = require('eslint-webpack-plugin'); const StylelintPlugin = require('stylelint-webpack-plugin'); const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; const WebpackBar = require('webpackbar'); const CopyWebpackPlugin = require('copy-webpack-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const SpriteLoaderPlugin = require('svg-sprite-loader/plugin'); const { VueLoaderPlugin } = require('vue-loader'); const { CleanWebpackPlugin } = require('clean-webpack-plugin'); const plugins = [ new WebpackBar({ profile: true }), new CleanWebpackPlugin({ cleanOnceBeforeBuildPatterns: [ '!**/*', 'assets/**', '*.html', '**/*.hot-update.*', ], }), new CopyWebpackPlugin({ patterns: [ copyThingPattern('/img', 'assets/img'), copyThingPattern('/files', 'assets/files'), copyThingPattern('/fonts', 'assets/fonts'), copyThingPattern('/publicFiles', '.'), ], }), new MiniCssExtractPlugin({ filename: 'assets/css/[name].css', }), new SpriteLoaderPlugin({ plainSprite: true, }), new VueLoaderPlugin(), isDev && new ESLintPlugin({ baseConfig: require('./configs/eslint.config.js'), extensions: 'js', emitWarning: true, files: path.resolve(process.cwd(), `${config.sourcePath}`), }), isDev && new StylelintPlugin({ files: path.join(process.cwd(), config.sourcePath, 'scss/**/*.s?(a|c)ss'), fix: true, config: require('./configs/stylelint.config.js'), }), isDev && new BundleAnalyzerPlugin({ analyzerPort: 'auto', openAnalyzer: false, }), ]; module.exports = plugins;