1. vue.config.js初始化配置

  1. /***
  2. * @Description:
  3. * @Author: Harry
  4. * @Date: 2021-11-11 10:13:01
  5. * @Url: https://u.mr90.top
  6. * @github: https://github.com/rr210
  7. * @LastEditTime: 2021-11-11 10:13:01
  8. * @LastEditors: Harry
  9. */
  10. // vue.config.js
  11. */
  12. // vue.config.js
  13. const path = require('path')
  14. // 定制主题
  15. const webpack = require('webpack')
  16. const themePath = path.join(__dirname, './src/assets/css/themevars.less')
  17. const CompressionWebpackPlugin = require('compression-webpack-plugin')
  18. const productionGzipExtensions = ['js', 'css']
  19. module.exports = {
  20. publicPath: './', // 文件加载设置为相对路径
  21. outputDir: './medicine/static/',
  22. productionSourceMap: process.env.NODE_ENV !== 'pro',
  23. // lintOnSave: false, // 关闭eslint
  24. configureWebpack: {
  25. resolve: {
  26. alias: {
  27. '@': path.resolve(__dirname, './src')
  28. }
  29. },
  30. plugins: [
  31. new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
  32. // 下面是下载的插件的配置
  33. new CompressionWebpackPlugin({
  34. algorithm: 'gzip',
  35. test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
  36. threshold: 10240,
  37. minRatio: 0.8,
  38. deleteOriginalAssets: false // 不删除源文件
  39. }),
  40. new webpack.optimize.LimitChunkCountPlugin({
  41. maxChunks: 5,
  42. minChunkSize: 100
  43. })
  44. ]
  45. },
  46. chainWebpack: config => {
  47. config
  48. .plugin('html')
  49. .tap(args => {
  50. args[0].title = '中草药害虫识别'
  51. return args
  52. })
  53. if (process.env.NODE_ENV === 'pro') {
  54. config.plugins.delete('preload')
  55. config.plugins.delete('prefetch')
  56. }
  57. },
  58. devServer: {
  59. open: false, // 项目启动时是否自动打开浏览器,我这里设置为false,不打开,true表示打开
  60. proxy: {
  61. '/v1': {
  62. target: 'http://127.0.0.1:5051/', // 对应自己的接口,代理地址修改后必须重启项目
  63. // target: 'http://2e3e-60-223-236-230.ngrok.io', // 对应自己的接口,代理地址修改后必须重启项目
  64. // target: 'https://detect.mr90.top/', //对应自己的接口,代理地址修改后必须重启项目
  65. changeOrigin: true, // 是否允许跨域
  66. pathRewrite: {
  67. // 重写路径,当我们在浏览器中看到请求的地址为:http://localhost:8080/api/user/userInfo 时
  68. // 实际上访问的地址是:http://192.168.1.249:9527/user/userInfo,因为重写了 /api
  69. '^/v1': ''
  70. }
  71. }
  72. }
  73. }
  74. }

2. eslintrc.js配置

  1. "space-before-function-paren": 0, // 函数定义时括号前面要不要有空格

3. axios配置

  1. import axios from 'axios'
  2. import NProgress from 'nprogress'
  3. import 'nprogress/nprogress.css'
  4. axios.defaults.baseURL = process.env.VUE_APP_URL
  5. const startLoading = () => {
  6. NProgress.start()
  7. }
  8. const endLoading = () => {
  9. NProgress.done()
  10. }
  11. // 请求拦截
  12. // axios.defaults.withCredentials = true
  13. axios.interceptors.request.use((config) => {
  14. // 加载
  15. startLoading()
  16. return config
  17. })
  18. // 响应拦截
  19. axios.interceptors.response.use((response) => {
  20. // 结束loading
  21. endLoading()
  22. return response
  23. }, error => {
  24. // 结束loading
  25. endLoading()
  26. // 错误提醒
  27. return Promise.reject(error)
  28. })
  29. export default axios