webpack.prod.conf.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. const webpack = require('webpack');
  2. const path = require('path');
  3. const MiniCssExtractPlugin = require("mini-css-extract-plugin");
  4. const webpackBaseConf = require('./webpack.base.conf.js');
  5. //const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
  6. const rimraf = require('rimraf');
  7. const merge = require('webpack-merge');
  8. rimraf('./dist/sites/', function (err) {
  9. if (err) console.log(err);
  10. });
  11. rimraf('./dist/nutui.js', function (err) {
  12. if (err) console.log(err);
  13. });
  14. rimraf('./dist/nutui.css', function (err) {
  15. if (err) console.log(err);
  16. });
  17. rimraf('./dist/nutui.js.map', function (err) {
  18. if (err) console.log(err);
  19. });
  20. rimraf('./dist/nutui.css.map', function (err) {
  21. if (err) console.log(err);
  22. });
  23. module.exports = merge(webpackBaseConf, {
  24. mode: 'production',
  25. devtool: 'source-map',
  26. entry: {
  27. nutui: './src/nutui.js',
  28. },
  29. externals: {
  30. 'vue': {
  31. root: 'Vue',
  32. commonjs: 'vue',
  33. commonjs2: 'vue',
  34. amd: 'vue'
  35. }
  36. },
  37. output: {
  38. path: path.resolve(__dirname, '../dist/'),
  39. filename: 'nutui.js',
  40. library: 'nutui',
  41. libraryTarget: 'umd',
  42. globalObject: 'this',
  43. umdNamedDefine: true
  44. },
  45. plugins: [
  46. new MiniCssExtractPlugin({
  47. filename: '[name].css'
  48. }),
  49. new webpack.DefinePlugin({
  50. 'process.env': {
  51. NODE_ENV: '"production"'
  52. }
  53. })
  54. ],
  55. optimization: {
  56. minimize: false
  57. }
  58. });