var path = require('path'); var webpack = require('webpack'); const WebpackMerge = require('webpack-merge'); const baseConfig = require('./webpack.base.js'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); module.exports = WebpackMerge.merge(baseConfig,{ mode: 'production', // 发布组件 entry: './packages/index.js', output: { path: path.resolve(__dirname, './dist'), publicPath: '/dist/', filename: 'pc-component-v3.js', library: { type: 'module', }, //library: 'pc-component-v3', //libraryTarget: 'umd', // 「devtool 中模块」的文件名模板(用于冲突) //umdNamedDefine: false, }, experiments: { outputModule: true, }, //optimization: { // minimize: true, // 压缩 bundle //}, //devtool: 'source-map', plugins: (module.exports.plugins || []).concat([ new webpack.LoaderOptionsPlugin({ minimize: true, }), // CSS 提取 new MiniCssExtractPlugin({ filename: 'pc-component-v3.css', }), ]), // 不把第三方库打包到bundle中 externals: { jQuery: 'window.$', jquery: 'window.$', $: 'window.$', 'bootstrap': 'bootstrap', 'moment': 'moment', // 不将vue代码打包进我们的组件库代码中,如果将vue代码打包进组件库中则会报错 'vue': 'vue', 'vue-i18n': 'vue-i18n', 'vue-router': 'vue-router', 'v-tooltip': 'v-tooltip', 'vuedraggable': 'vuedraggable', 'amis': 'amis', }, });