const path = require('path') const utils = require('./utils') const webpack = require('webpack') const merge = require('webpack-merge') const baseWebpackConfig = require('./webpack.base.conf') const ExtractTextPlugin = require('extract-text-webpack-plugin') const CleanWebpackPlugin = require('clean-webpack-plugin') const env = require('../config/prod.env') const webpackConfig = merge(baseWebpackConfig, { entry: { hlsuis: path.resolve(__dirname, '../packages/index.js'), }, output: { path: path.resolve(__dirname, '../lib'), filename: '[name].js', chunkFilename: utils.assetsPath('js/[id].[chunkhash].js'), library: 'hlsuis', libraryTarget: 'umd', umdNamedDefine: true, }, devtool: false, plugins: [ new CleanWebpackPlugin(['lib'], { root: path.resolve(__dirname, '../'), // 项目的文件夹 }), // http://vuejs.github.io/vue-loader/en/workflow/production.html new webpack.DefinePlugin({ 'process.env': env, }), // extract css into its own file new ExtractTextPlugin({ filename: utils.assetsPath('css/[name].[contenthash].css'), // Setting the following option to `false` will not extract CSS from codesplit chunks. // Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack. // It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`, // increasing file size: https://github.com/vuejs-templates/webpack/issues/1110 allChunks: true, }), ], }) module.exports = webpackConfig