Skip to content

培训视频

注意:视频前半段为gis-boot 前端项目构建

gis-boot 前端项目构建

简介

项目由3个部分组成 core > group > project

  • 核心部分 core: 该部分为所有系统共用模块,非框架维护人员不允许提交
  • 组模块部分 group: 业务平台共用模块,只能运行一个 非平台维护人员不允许提交
  • 业务部分 projects: 业务代码,只能运行一个,业务人员编辑
text
src:
├─core
├─group
│  ├─group1
│  └─group2
├─projects
    ├─project1
    └─project2

搭建

  1. vue create 项目名 空项目模板

选择创建vue2项目,后续以‘test’代替项目名, 也可以通过创建目录张贴其他项目的package.json方式

  1. 创建环境变量配置文件

创建 .env文件

text


// 当前开发的项目
VUE_APP_PROJECT_NAME = "test"


//接口配置
VUE_APP_URL = "http://127.0.0.1:8888"


// 其他配置项根据项目实际配置
  1. 引入公共模块

svn地址: https://www.ztgis.com:2443/svn/java项目代码_框架/gis-boot-front-core

  1. 创建config目录,创建projectConfig.js文件
json
const config = {
  // 业务模块名
  'test': {
    pages: {
      index: {
        entry: 'src/projects/test/main.js', //业务入口
        template: 'public/index.html',
        filename: 'index.html'
      }
    },
    group: '组模块名' //需要引入的组名,无则不配置该项目
  }
}
module.exports = config
  1. 配置vue.config.js
js
const CompressionPlugin = require('compression-webpack-plugin')
const projectConfig = require('./config/projectConfig')
const path = require('path')


module.exports = {
  // 读取项目配置文件,加载当前所选中的项目
  pages: projectConfig[process.env.VUE_APP_PROJECT_NAME].pages,
  filenameHashing: true,
  lintOnSave: false,
  //路径配置
  chainWebpack: config => {
    config.resolve.alias
      .set('@', path.resolve('src'))
      .set('~', path.resolve(`src/projects/${process.env.VUE_APP_PROJECT_NAME}`))
      .set('&', !!projectConfig[process.env.VUE_APP_PROJECT_NAME].group ? path.resolve(`src/group/${projectConfig[process.env.VUE_APP_PROJECT_NAME].group}`) : path.resolve('src/core'));
    config.plugins.delete('prefetch-index');
    config.plugins.delete('preload-index');
  },
  //本地调试代理配置
  devServer: {
    host: '0.0.0.0',
    port: 9999,
    proxy: {
      //接口
      '/gisBoot': {
        target: process.env.VUE_APP_URL, // 请求本地 需要gisBoot后台项目
        changeOrigin: true, // 是否允许跨越
        ws: true
      },
      //文件服务器
      '/ggpt_file_server': {
        target: '文件服务器地址',
      },
    }
  },
  // 打包时不生成.map文件 避免看到源码
  productionSourceMap: false,
  // 部署优化
  configureWebpack: {
    // 将应用移植到本地减少包的大小
    externals: {
      // vue: 'Vue',
      // echarts: 'echarts'
    },
    // GZIP压缩
    plugins: [
      new CompressionPlugin({
        test: /\.js$|\.html$|\.css/, // 匹配文件
        threshold: 10240 // 对超过10k文件压缩
      })
    ]
  }
}

至此,前端代理已配置好,并可在项目中‘@’引用所有路径,‘&’引用组模块,‘~’引用项目模块

  1. 配置package.json
json
  // scripts 中增加环境变量,model后面需要目录下有对应 .env.xxx文件
  "scripts": {
    "dev": "vue-cli-service serve --mode dev",
    "serve": "vue-cli-service serve --mode dev",
    "build": "vue-cli-service build --mode prod",
    "lint": "vue-cli-service lint"
  },
  //dependencies 增加引用
  "dependencies":{
    "@babel/plugin-proposal-optional-chaining": "^7.13.8",
    "@babel/runtime-corejs3": "^7.12.5",
    "apexcharts": "^3.20.0",
    "area-data": "^5.0.6",
    "as": "^0.4.1",
    "axios": "^0.18.0",
    "core-js": "^2.6.8",
    "countup": "^1.8.2",
    "cron-parser": "^2.16.3",
    "cropperjs": "^1.5.7",
    "crypto-js": "^4.1.1",
    "date-fns": "^1.30.1",
    "debounce": "^1.2.0",
    "echarts": "^4.9.0",
    "file-saver": "^2.0.2",
    "gsap": "^3.5.0",
    "html2canvas": "^1.0.0-rc.7",
    "js-cookie": "^2.2.0",
    "licia": "^1.24.0",
    "lodash": "^4.17.20",
    "moment-range": "^4.0.2",
    "particles.js": "^2.0.0",
    "postmate": "^1.5.2",
    "print-js": "^1.0.63",
    "resize-observer-polyfill": "^1.5.1",
    "root": "^3.2.0",
    "v-calendar": "^2.1.5",
    "v-jsoneditor": "^1.4.1",
    "view-design": "^4.7.0",
    "viewerjs": "^1.6.1",
    "vue": "^2.6.12",
    "vue-apexcharts": "^1.6.0",
    "vue-awesome": "^3.5.2",
    "vue-clickaway": "^2.2.2",
    "vue-clipboard2": "^0.3.0",
    "vue-cropper": "^0.4.8",
    "vue-i18n": "^8.21.0",
    "vue-json-pretty": "^1.6.7",
    "vue-konva": "^2.1.4",
    "vue-lazyload": "^1.2.6",
    "vue-ls": "^4.2.0",
    "vue-router": "^3.5.4",
    "vue-runtime-helpers": "^1.1.2",
    "vue-stomp": "^0.0.5",
    "vuedraggable": "^2.24.1",
    "vuex": "^3.5.1",
    "wangeditor": "^3.1.1",
    "xss": "^1.0.8"
  }
  //devDependencies 增加引用
  "devDependencies":{
    "@babel/polyfill": "^7.10.4",
    "@types/chai": "^4.2.11",
    "@types/mocha": "^5.2.4",
    "@vue/cli-plugin-babel": "~4.5.0",
    "@vue/cli-plugin-typescript": "~4.5.0",
    "@vue/cli-service": "~4.5.0",
    "chai": "^4.1.2",
    "compression-webpack-plugin": "^2.0.0",
    "less": "^3.12.2",
    "less-loader": "^5.0.0",
    "typescript": "~3.9.3",
    "vue-template-compiler": "^2.6.12"
  }
  1. 安装插件
js
删除node_modules,package-lock.json
//环境安装
npm i
//补充安装
npm i @vue/babel-preset-app
//运行
npm run dev
//打包
npm run build