vue.config.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. const path = require('path');
  2. const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
  3. const isProduction = process.env.NODE_ENV === 'production';
  4. // const BASE_URL = process.env.NODE_ENV === 'production' ? '/screen' : '/';
  5. module.exports = {
  6. chainWebpack: (config) => {
  7. // 移除 prefetch 插件
  8. config.plugins.delete('prefetch');
  9. },
  10. assetsDir: 'assets',
  11. productionSourceMap: !isProduction,
  12. // publicPath: BASE_URL,
  13. lintOnSave: 'error',
  14. // 避免静态资源请求时附带Cookie,最终目的是减少资源请求包的大小
  15. crossorigin: 'anonymous',
  16. // 保证资源的安全性,避免劫持后的安全问题
  17. integrity: true,
  18. publicPath: process.env.BASE_URL, // 公共资源访问路径
  19. indexPath: 'index.html', // 相对于打包路径index.html的路径
  20. // outputDir: process.env.outputDir || 'main', // 'dist', 生产环境构建文件的目录
  21. devServer: {
  22. // 启动且第一次构建完成时,自动用我们的系统的默认浏览器去打开要开发的网页
  23. open: true,
  24. disableHostCheck: true,
  25. proxy: {
  26. '/phpapi': {
  27. target: process.env.VUE_APP_PHP_URL,
  28. changeOrigin: true,
  29. pathRewrite: { '^/phpapi': '' },
  30. // 另外的细节
  31. // 浏览器对Port的处理存在差异,这是同源策略中的灰色地带,即:80端口的Cookie在Chrome等其他浏览器中会发送到:8080,而Firefox不会)。
  32. // cookieDomainRewrite: '',
  33. // secure: false,
  34. },
  35. },
  36. },
  37. configureWebpack: {
  38. resolve: {
  39. mainFields: ['browser', 'module', 'main'],
  40. alias: {
  41. '@': path.resolve(__dirname, 'src'),
  42. },
  43. },
  44. optimization: {
  45. minimizer: [
  46. new UglifyJsPlugin({
  47. uglifyOptions: {
  48. warnings: false,
  49. compress: {
  50. drop_console: true, // console
  51. drop_debugger: true,
  52. pure_funcs: ['console.log'], // 移除console
  53. },
  54. output: {
  55. beautify: false, // 最紧凑的输出,不保留空格和制表符
  56. comments: false, // 删除所有注释
  57. },
  58. },
  59. sourceMap: false,
  60. parallel: true,
  61. }),
  62. ],
  63. },
  64. },
  65. };