vue.config.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. var webpack = require("webpack");
  2. var TerserPlugin = require("terser-webpack-plugin");
  3. var devProxy = {};
  4. try {
  5. devProxy = require("./dev-proxy");
  6. } catch (error) {}
  7. var proxy = process.env.NODE_ENV === "production" ? {} : devProxy;
  8. // 配置手册: https://cli.vuejs.org/zh/config/#vue-config-js
  9. var config = {
  10. // publicPath: './',
  11. devServer: {
  12. port: 8056
  13. },
  14. chainWebpack: config => {
  15. // webpack-chain配置手册:github.com/neutrinojs/webpack-chain#getting-started
  16. config.plugin("provide").use(webpack.ProvidePlugin, [
  17. {
  18. "window.Quill": "quill/dist/quill.js",
  19. Quill: "quill/dist/quill.js"
  20. }
  21. ]);
  22. // 限制base64图片的大小在20kb以下
  23. config.module
  24. .rule("images")
  25. .use("url-loader")
  26. .loader("url-loader")
  27. .tap(options => Object.assign(options, { limit: 20480 }));
  28. }
  29. };
  30. // compress配置手册:https://github.com/mishoo/UglifyJS2/tree/harmony#compress-options
  31. if (process.env.NODE_ENV === "production") {
  32. config.configureWebpack = {
  33. optimization: {
  34. minimizer: [
  35. new TerserPlugin({
  36. terserOptions: { compress: { drop_console: true } }
  37. })
  38. ]
  39. }
  40. };
  41. }
  42. if (proxy && Object.keys(proxy).length) {
  43. config.devServer.proxy = proxy;
  44. }
  45. module.exports = config;