此项目基于@ibizlab/template 封装开发,使用 handlerbas.js 引擎对 Ibiz 平台生成的模型进行解析,同时结合基础文件,共同构建生成基于 Vite + Vue + Typescript 的 Vue3 项目。
1、使用提供的 package.json 内容,在指定的文件夹下执行yarn install
安装依赖
2、修改 package.json 中的脚本,指向本地的模型路径地址
"generate": "template generate -m D:/Project/DemoSys/demo-boot/src/main/resources/static/remotemodel -o ./ --app Web --dev",
3、执行脚本yarn code
,生成项目代码
4、修改代理地址,通过yarn dev
启动项目
如果需要对当前项目中的发布逻辑进行调整,或增加特殊的发布文件,则用户可以本地构建 template 目录,在其中放置模板文件(.hbs),同时修改 package.json 中的 generate 脚本,增加[-t <模板地址>]
选项
"generate": "template generate -m D:/Project/DemoSys/demo-boot/src/main/resources/static/remotemodel -t ./template -o ./ --app Web --dev",
package.json 内容
{
"name": "web",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"copy": "node copy.cjs",
"lint": "eslint . --ext .vue,.js,.ts,.jsx,.tsx --fix",
"format": "prettier --write ./*.{ts,js,cjs} ./**/*.{vue,ts,json} ./src/**/**/*.{vue,ts} ./src/**/**/**/*.{vue,ts}",
"dev": "npm run copy && vite --mode development",
"build": "npm run copy && vue-tsc --noEmit && vite build",
"preview": "vite preview",
"fix-memory-limit": "cross-env LIMIT=8102 increase-memory-limit",
"generate": "template generate -m ../model -o ./ --app Web --dev",
"code": "yarn && npm run generate && npm run format",
"test": "vitest",
"coverage": "vitest run --coverage"
},
"dependencies": {
"@amap/amap-jsapi-loader": "^1.0.1",
"@ant-design/colors": "^6.0.0",
"@ant-design/icons-vue": "^6.1.0",
"@fullcalendar/core": "^5.11.2",
"@fullcalendar/daygrid": "^5.11.2",
"@fullcalendar/interaction": "^5.11.2",
"@fullcalendar/list": "^5.11.2",
"@fullcalendar/timegrid": "^5.11.2",
"@fullcalendar/vue3": "^5.11.2",
"@kangc/v-md-editor": "^2.3.15",
"@types/lodash": "^4.14.186",
"@vue/shared": "^3.2.33",
"ant-design-vue": "^3.2.12",
"axios": "^0.26.1",
"date-fns": "^2.29.3",
"dexie": "^3.2.2",
"echarts": "5.0.2",
"file-saver": "2.0.5",
"font-awesome": "^4.7.0",
"lodash": "^4.17.21",
"mavon-editor": "^2.9.1",
"pinia": "2.0.22",
"qs": "6.11.0",
"qx-util": "0.4.1",
"ramda": "^0.28.0",
"vue-amap": "^0.5.10",
"tinymce": "5.7.1",
"vue": "^3.2.37",
"vue-i18n": "^9.2.2",
"vue-router": "^4.0.14",
"vuedraggable": "^4.1.0",
"luckyexcel": "^1.0.1",
"xlsx": "0.16.9"
},
"devDependencies": {
"@ibiz-template/vue3": "^1.0.15",
"@types/echarts": "^4.9.7",
"@types/node": "^17.0.25",
"@types/prismjs": "^1.26.0",
"@types/qs": "^6.9.7",
"@types/ramda": "^0.28.15",
"@typescript-eslint/eslint-plugin": "^5.46.0",
"@typescript-eslint/parser": "^5.46.0",
"@vitejs/plugin-vue": "^3.1.0",
"@vitest/coverage-c8": "^0.26.2",
"@zougt/vite-plugin-theme-preprocessor": "^1.4.6",
"cross-env": "^7.0.3",
"eslint": "^8.29.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-vue": "^9.8.0",
"increase-memory-limit": "^1.0.7",
"jsdom": "^20.0.3",
"cp-file": "9.1.0",
"glob": "^8.0.3",
"less": "^4.1.2",
"prettier": "^2.8.1",
"typescript": "^4.6.4",
"unplugin-auto-import": "^0.11.2",
"unplugin-vue-components": "^0.22.11",
"vite": "^3.1.0",
"vite-plugin-progress": "^0.0.6",
"vitest": "^0.26.2",
"@vue/test-utils": "^2.3.1",
"vue-tsc": "^1.0.9"
}
}