UNPKG

cruk-pattern-library-api

Version:
108 lines (106 loc) 2.28 kB
const path = require('path'); const StyleLintPlugin = require('stylelint-webpack-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); module.exports = { entry: { 'patterns': './main.js', 'index': './src/index.js', }, output: { path: path.resolve(__dirname, 'lib'), filename: '[name].js', library: 'patterns', libraryTarget: 'umd', umdNamedDefine: true, globalObject: 'typeof self !== \'undefined\' ? self : this' }, devServer: { inline:true, port: 9999, publicPath: '/', contentBase: './lib', }, optimization: { splitChunks: { cacheGroups: { styles: { name: 'styles', test: /\.css$/, chunks: 'all', enforce: true } } } }, module: { rules: [ { test: /\.(js|jsx)$/, exclude: /(node_modules|bower_components)/, use: [ { loader: 'babel-loader', query: { presets: [ '@babel/react', '@babel/env' ], plugins: [ '@babel/plugin-proposal-class-properties' ] } }, 'eslint-loader' ] }, { test: /\.(sa|sc|c)ss$/, use: [ MiniCssExtractPlugin.loader, { loader: 'css-loader', options: { minimize: { safe: true } } }, { loader: 'postcss-loader', options: { plugins: () => [require('autoprefixer')({ 'browsers': ['> 1%', 'last 2 versions', 'ie >= 10'] })], grid: true } }, { loader: 'sass-loader', options: {} } ] } ] }, plugins: [ new StyleLintPlugin({ context: './patterns', syntax: 'scss', }), new MiniCssExtractPlugin({ filename: 'all.css', }) ], resolve: { alias: { react: path.resolve('./node_modules/react'), }, extensions:['.js', '.jsx', '.webpack.js', '.web.js','*'] }, stats: { colors: true }, node: { fs: 'empty' } };