webpack.prod.conf.js 1.6 KB

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