UNPKG

base-ui

Version:

A component library for Better Vue developmemt

80 lines (77 loc) 2.31 kB
const path = require('path'); const VueLoaderPlugin = require('vue-loader/lib/plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin'); const {CleanWebpackPlugin} = require('clean-webpack-plugin'); const HardSourceWebpackPlugin = require('hard-source-webpack-plugin'); const TerserPlugin = require('terser-webpack-plugin'); const babelConfig = require('./babel.config'); module.exports = { mode: 'production', entry: { main: path.resolve(__dirname, './src/base-ui.js') }, output: { path: path.resolve(__dirname, './dist/'), filename: 'base-ui.min.js', library: 'base-ui', // 类库导出 libraryTarget: 'umd', umdNamedDefine: true }, module: { rules: [ { test: /\.vue$/, exclude: /node_modules/, loader: 'vue-loader' }, { test: /\.js$/, loader: 'babel-loader', options: { cacheDirectory: true, sourceMap: true, ...babelConfig }, exclude: /node_modules/ }, { test: /\.scss$/, use: [ MiniCssExtractPlugin.loader, // 'style-loader', 'css-loader', 'sass-loader' ] }, { test: /\.(gif|jpg|png|woff|svg|eot|ttf)\??.*$/, loader: 'file-loader', options: { name: '[name].[ext]' } } ] }, plugins: [ new CleanWebpackPlugin(), new VueLoaderPlugin(), new MiniCssExtractPlugin({ filename: 'base-ui.css' }), new HardSourceWebpackPlugin() ], resolve: { extensions: ['.js', '.vue'], alias: { '@': path.resolve(__dirname, './src'), 'component': path.resolve(__dirname, './src/component') } }, optimization: { minimizer: [ new OptimizeCSSAssetsPlugin({}), new TerserPlugin({}) ] } };