webpack.lib.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. var path = require('path');
  2. var webpack = require('webpack');
  3. const WebpackMerge = require('webpack-merge');
  4. const baseConfig = require('./webpack.base.js');
  5. const MiniCssExtractPlugin = require('mini-css-extract-plugin');
  6. module.exports = WebpackMerge.merge(baseConfig,{
  7. mode: 'production',
  8. // 发布组件
  9. entry: './packages/index.js',
  10. output: {
  11. path: path.resolve(__dirname, './dist'),
  12. publicPath: '/dist/',
  13. filename: 'pc-component-v3.js',
  14. library: {
  15. type: 'module',
  16. },
  17. //library: 'pc-component-v3',
  18. //libraryTarget: 'umd',
  19. // 「devtool 中模块」的文件名模板(用于冲突)
  20. //umdNamedDefine: false,
  21. },
  22. experiments: {
  23. outputModule: true,
  24. },
  25. //optimization: {
  26. // minimize: true, // 压缩 bundle
  27. //},
  28. //devtool: 'source-map',
  29. plugins: (module.exports.plugins || []).concat([
  30. new webpack.LoaderOptionsPlugin({
  31. minimize: true,
  32. }),
  33. // CSS 提取
  34. new MiniCssExtractPlugin({
  35. filename: 'pc-component-v3.css',
  36. }),
  37. ]),
  38. // 不把第三方库打包到bundle中
  39. externals: {
  40. jQuery: 'window.$',
  41. jquery: 'window.$',
  42. $: 'window.$',
  43. 'bootstrap': 'bootstrap',
  44. 'moment': 'moment',
  45. // 不将vue代码打包进我们的组件库代码中,如果将vue代码打包进组件库中则会报错
  46. 'vue': 'vue',
  47. 'vue-i18n': 'vue-i18n',
  48. 'vue-router': 'vue-router',
  49. 'v-tooltip': 'v-tooltip',
  50. 'vuedraggable': 'vuedraggable',
  51. 'amis': 'amis',
  52. },
  53. });