vue.config.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. const webpack = require('webpack')
  2. const path = require('path')
  3. const proxy = process.env.NODE_ENV === 'production' ? require('./proxy-pro') : require('./proxy-dev')
  4. const day = new Date()
  5. const date = day.getFullYear() + (day.getMonth() + 1 < 10 ? '0' + (day.getMonth() + 1) : '' + (day.getMonth() + 1)) + (day.getDate() < 10 ? '0' + (day.getDate()) : day.getDate()) + '-' + day.getHours() + 'H' + day.getMinutes() + 'M'
  6. module.exports = {
  7. publicPath: '/vmh', //部署路径后缀
  8. outputDir: 'MH' + date, // 生产环境构建文件的目录。注意目标目录在构建之前会被清除 (构建时传入 --no-clean 可关闭该行为)
  9. assetsDir: 'static', // 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录。
  10. //indexPath: 'index.html', // 指定生成的 index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径。
  11. filenameHashing: true, // 文件名hash,默认
  12. lintOnSave: false, // 开发环境下通过 eslint-loader 在每次保存时 lint 代码
  13. productionSourceMap: false, // 关闭生产环境的 source map
  14. devServer: { // 所有 webpack-dev-server 的选项都支持
  15. host: '0.0.0.0',
  16. // host: proxy.localhost ? proxy.localhost : 'localhost', //target host
  17. port: 3000, // 开发服务器端口
  18. open: true, // 自动打开浏览器
  19. hot: true, // 是否热更新
  20. overlay: { // 浏览器 overlay 同时显示警告和错误(弹窗报错)
  21. warnings: true,
  22. errors: true
  23. },
  24. proxy: proxy.table || 'localhost',
  25. // historyApiFallback: {
  26. // index: '/' //与output的publicPath
  27. // },
  28. },
  29. // /**
  30. // * 分别为生成环境和开发环境配置
  31. configureWebpack: config => {
  32. if (process.env.NODE_ENV === 'production') {
  33. // 为生产环境修改配置...
  34. config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true
  35. } else {
  36. // 为开发环境修改配置...
  37. }
  38. Object.assign(config.resolve, {
  39. alias: {
  40. '@': path.resolve(__dirname, './src'),
  41. '@a': '@/assets',
  42. '@c': '@/components',
  43. '@v': '@/views'
  44. },
  45. })
  46. Object.assign(config, {
  47. externals: {
  48. // 大数据地图
  49. // 'JMap': 'JMap',
  50. // 'JMapQuery': 'JMapQuery',
  51. // 高德地图
  52. 'AMap': 'AMap',
  53. 'AMapUI': 'AMapUI'
  54. }
  55. })
  56. },
  57. // */
  58. css: {
  59. loaderOptions: {
  60. scss: {
  61. prependData: `@import "@/assets/scss/element-ui.scss";`
  62. }
  63. }
  64. },
  65. // configureWebpack: { // 如果这个值是一个对象,则会通过 webpack-merge 合并到最终的配置中
  66. // name: '闵行消防项目', // 提供应用程序的标题, 一般设置为项目名称即可
  67. // resolve: {
  68. // alias: { // 配置别名
  69. // '@a': '@/assets',
  70. // '@c': '@/components',
  71. // '@v': '@/views'
  72. // }
  73. // },
  74. // performance: { // 一个资源超过多少(默认250000 (bytes)),如何展示性能提示
  75. // hints: "error", // false | "error" | "warning"
  76. // maxEntrypointSize: 400000, // 设置入口起点的最大体积
  77. // maxAssetSize: 300000, // 最大单个资源体积,默认250000 (bytes)
  78. // }
  79. // },
  80. // chainWebpack(config) { //是一个函数,会接收一个基于 webpack-chain 的 ChainableConfig 实例。允许对内部的 webpack 配置进行更细粒度的修改。
  81. // 修改Loader选项、添加新的Loader、替换一个规则类的Loader、修改插件
  82. // }
  83. }