GitBucket
4.6.0
Toggle navigation
Sign in
Files
Branches
1
Tags
Issues
Pull Requests
Labels
Milestones
Wiki
08335
/
hivui-platform-template
hivui平台项目模板
Browse code
add
master
1 parent
4750439
commit
46c3d156167dec0012e0af1f3eb664ee2da8c520
caibinghong
authored
on 25 Oct 2021
Showing
6 changed files
.env.staging
build/bin/create.sh
build/bin/oper.sh
package.json
project/demo/index.html
vite.config.js
Ignore Space
Show notes
View
.env.staging
0 → 100644
# .env.staging VITE_APP_BASE_API = 'http://e5.hieap.cn/' VITE_APP_SERVER='e5' # 项目名/工号 VITE_APP_PN = eaptpl/admin VITE_APP_QUERYDATA = '/amrept-web/server/WebServiceWadl/[projectName]/cxfService/queryForm' VITE_APP_SAVEDATA = '/amrept-web/server/WebServiceWadl/[projectName]/cxfService/saveForm'
Ignore Space
Show notes
View
build/bin/create.sh
#!/bin/bash ## 权限问题,用 chmod u+x *.sh ## eg: ## cd /mobileproject/$1/XcxProject hivui create $1 if [ $# != 3 ] ; then echo "创建项目的参数不正确,请输入(用户ID,项目名,预览端口)" exit 1 fi # basePath='/opt/eap5/desktop' basePath='/eap5.0/desktop' tagPath=$basePath'/preview' # tmpPath=$basePath'/project-template' tmpPath='/eap5.0/hiruntime/project/desktop/project-template' workName=$1 projectName=$2 port=$3 source[0]='\t<% if(htmlWebpackPlugin.vite){%>\n\t<!--预览时 公共库-->' source[1]='\n\t<script src="\/'$projectName'\/setting\/desktop\/appsetting\/js\/1.0.0\/development.js" type="text\/javascript"><\/script>' source[2]='\n\t<%}%>' source[3]='\n\t<% if(!htmlWebpackPlugin.vite){%>\n\t<!--发布时 公共库-->' source[4]='\n\t<script src="\/${serverName}\/render\/'${workName}'\/'$projectName'\/setting\/desktop\/appsetting\/js\/1.0.0\/appsetting.js" type="text\/javascript"><\/script>' source[5]='\n\t<%}%>\n' # echo 's/<\/head>/'${source[*]}'<\/head>/g' # exit 1; ## 参数 工号$1 项目名$2 端口$3 ## 工号=工作空间 ## 1、判断工作空间 没有就创建 if [ ! -d "${tagPath}/${workName}" ];then mkdir "${tagPath}/${workName}" fi ## 2、判断项目名 if [ -d "${tagPath}/${workName}/${projectName}" ];then ## 项目名存在,退出 echo "项目名存在" exit 1 fi echo "下载模板中..." ## 3、下载模板 ,如果很多用户同时下载到同一目录 git clone http://192.168.4.105:8080/gitbucket/git/08335/hivui-platform-template.git "${tagPath}/${workName}/${projectName}/deploy" ## 复制 node_modules echo "环境配置中..." cp -rf ${tmpPath}/node_modules ${tagPath}/${workName}/${projectName}/deploy/node_modules cd ${tagPath}/${workName}/${projectName}/deploy/ ## 重命名 mv project ${projectName} rm -r -f oldPackage build/oldWebpack ## 替换 .env.development 的 name 值 sed -i 's#\(VITE_APP_PN \?= \?\).*#\1'"${projectName}/${workName}"'#g' .env.development ## 替换 package.json 的 name 值 author值 ,打包时候输出静态地址是这个 sed -i 's#\("name": \?"\).*#\1'"${projectName}"'",#g' package.json sed -i 's#\("author": \?"\).*#\1'"${workName}"'",#g' package.json ## 替换 processes.json 的 args 值 sed -i '4s#\("name": \?"\).*#\1'"vite-${workName}-${projectName}"'",#g' processes.json sed -i '7s#\("args": \?"\).*#\1'"--host --port ${port}"'",#g' processes.json cd ${tagPath}/${workName}/${projectName}/deploy/${projectName}/hivuiLogin sed -i 's/<\/head>/'"${source[*]}"'<\/head>/g' index.html cd ${tagPath}/${workName}/${projectName}/deploy/${projectName}/hivuiMain sed -i 's/<\/head>/'"${source[*]}"'<\/head>/g' index.html cd ${tagPath}/${workName}/${projectName}/deploy/${projectName}/setting/desktop/appsetting/js/1.0.0 sed -i 's#\(projectName \?= \?\).*#\1"'"${projectName}"'";#g' appsetting.js ## 返回预览目录 cd ${tagPath}/${workName}/${projectName}/deploy ### 启动 用yarn 可以把 --host --port 带入 script dev ## yarn run dev --host --port $port echo "正在启动服务..." npm run pm2:start
#!/bin/bash ## 权限问题,用 chmod u+x *.sh ## eg: ## cd /mobileproject/$1/XcxProject hivui create $1 if [ $# != 3 ] ; then echo "创建项目的参数不正确,请输入(用户ID,项目名,预览端口)" exit 1 fi # basePath='/opt/eap5/desktop' basePath='/eap5.0/desktop' tagPath=$basePath'/preview' # tmpPath=$basePath'/project-template' tmpPath='/eap5.0/hiruntime/project/desktop/project-template' workName=$1 projectName=$2 port=$3 source[0]='\t<% if(htmlWebpackPlugin.vite){%>\n\t<!--预览时 公共库-->' source[1]='\n\t<script src="\/'$projectName'\/setting\/desktop\/appsetting\/js\/1.0.0\/appsetting.js" type="text\/javascript"><\/script>' source[2]='\n\t<%}%>' source[3]='\n\t<% if(!htmlWebpackPlugin.vite){%>\n\t<!--发布时 公共库-->' source[4]='\n\t<script src="\/${serverName}\/render\/'${workName}'\/'$projectName'\/setting\/desktop\/appsetting\/js\/1.0.0\/appsetting.js" type="text\/javascript"><\/script>' source[5]='\n\t<%}%>\n' # echo 's/<\/head>/'${source[*]}'<\/head>/g' # exit 1; ## 参数 工号$1 项目名$2 端口$3 ## 工号=工作空间 ## 1、判断工作空间 没有就创建 if [ ! -d "${tagPath}/${workName}" ];then mkdir "${tagPath}/${workName}" fi ## 2、判断项目名 if [ -d "${tagPath}/${workName}/${projectName}" ];then ## 项目名存在,退出 echo "项目名存在" exit 1 fi echo "下载模板中..." ## 3、下载模板 ,如果很多用户同时下载到同一目录 git clone http://192.168.4.105:8080/gitbucket/git/08335/hivui-platform-template.git "${tagPath}/${workName}/${projectName}/deploy" ## 复制 node_modules echo "环境配置中..." cp -rf ${tmpPath}/node_modules ${tagPath}/${workName}/${projectName}/deploy/node_modules cd ${tagPath}/${workName}/${projectName}/deploy/ ## 重命名 mv project ${projectName} rm -r -f oldPackage build/oldWebpack ## 替换 .env.development 的 name 值 sed -i 's#\(VITE_APP_PN \?= \?\).*#\1'"${projectName}/${workName}"'#g' .env.development ## 替换 package.json 的 name 值 author值 ,打包时候输出静态地址是这个 sed -i 's#\("name": \?"\).*#\1'"${projectName}"'",#g' package.json sed -i 's#\("author": \?"\).*#\1'"${workName}"'",#g' package.json ## 替换 processes.json 的 args 值 sed -i '4s#\("name": \?"\).*#\1'"vite-${workName}-${projectName}"'",#g' processes.json sed -i '7s#\("args": \?"\).*#\1'"--host --port ${port}"'",#g' processes.json cd ${tagPath}/${workName}/${projectName}/deploy/${projectName}/hivuiLogin sed -i 's/<\/head>/'"${source[*]}"'<\/head>/g' index.html cd ${tagPath}/${workName}/${projectName}/deploy/${projectName}/hivuiMain sed -i 's/<\/head>/'"${source[*]}"'<\/head>/g' index.html cd ${tagPath}/${workName}/${projectName}/deploy/${projectName}/setting/desktop/appsetting/js/1.0.0 sed -i 's#\(projectName \?= \?\).*#\1"'"${projectName}"'";#g' appsetting.js ## 返回预览目录 cd ${tagPath}/${workName}/${projectName}/deploy ### 启动 用yarn 可以把 --host --port 带入 script dev ## yarn run dev --host --port $port echo "正在启动服务..." npm run pm2:start
Ignore Space
Show notes
View
build/bin/oper.sh
#!/bin/bash ## 权限问题,用 chmod u+x *.sh ## eg: ## cd /mobileproject/$1/XcxProject hivui create $1 if [ $# -gt 4 ] ; then echo "$3 操作命令有误,请重新输入!" exit 1 fi # basePath='/opt/eap5/desktop' basePath='/eap5.0/desktop' tagPath=$basePath'/preview' # tmpPath=$basePath'/project-template' tmpPath='/eap5.0/hiruntime/project/desktop/project-template' gitTmp='/eap5.0/hiruntime/project/desktop/__gittmp' workName=$1 projectName=$2 oper=$3 uploadPath=$4 syncWay=$4 source[0]='\t<% if(htmlWebpackPlugin.vite){%>\n\t<!--预览时 公共库-->' source[1]='\n\t<script src="\/'$projectName'\/setting\/desktop\/appsetting\/js\/1.0.0\/appsetting.js" type="text\/javascript"><\/script>' source[2]='\n\t<%}%>' source[3]='\n\t<% if(!htmlWebpackPlugin.vite){%>\n\t<!--发布时 公共库-->' source[4]='\n\t<script src="\/${serverName}\/render\/'${workName}'\/'$projectName'\/setting\/desktop\/appsetting\/js\/1.0.0\/appsetting.js" type="text\/javascript"><\/script>' source[5]='\n\t<%}%>\n' ## aaa=$(pm2 id "vite-${workName}-${projectName}") ## [] 说明服务有启动但是,没有执行 ## if [ ${#aaa} = 2 ] ; then ## echo "===================" ## fi ## 参数 工号$1 项目名$2 端口$3 ## 工号=工作空间 ## 1、判断工作空间 没有就创建 # if [ ! -d "${tagPath}/${workName}" ];then # echo "${oper} 命令: 工作空间不存在!" # exit 1 # fi ## 2、判断项目名 if [ ! -d "${tagPath}/${workName}/${projectName}" ];then echo "${oper} 命令: 项目名不存在!" # exit 1 fi ## 返回预览目录 # cd ${tagPath}/${workName}/${projectName}/deploy if [ $3 = "restart" ] ; then ### 用pm2管理,用pm2 重启指定的 pm2 restart "vite-${workName}-${projectName}" #yarn run pm2:restart vite-${workName}-${projectName} fi if [ $3 = "start" ] ; then pm2 delete "vite-${workName}-${projectName}" ### 用pm2管理,用pm2 重启指定的 cd ${tagPath}/${workName}/${projectName}/deploy yarn run pm2:start fi if [ $oper = "kill" ] ; then ### 用pm2管理,用pm2 重启指定的 pm2 delete "vite-${workName}-${projectName}" #yarn run pm2:kill vite-${workName}-${projectName} fi if [ $oper = "stop" ] ; then ### 用pm2管理,用pm2 重启指定的 pm2 stop "vite-${workName}-${projectName}" #yarn run pm2:stop vite-${workName}-${projectName} fi if [ $oper = "del" ] ; then if [ $workName = "admin" -a $projectName = "systpl" ] ; then echo "系统模板,不可删除!" exit 1 fi curPid=`pm2 pid vite-${workName}-${projectName}` if [ ! -z "$curPid" ];then echo "vite-${workName}-${projectName} 服务正在关闭!" pm2 delete "vite-${workName}-${projectName}" fi ### 删除用户项目 cd "${tagPath}/${workName}" rm -r -f "${projectName}" echo "vite-${workName}-${projectName} 删除成功!" fi if [ $oper = "build" ] ; then ### 用pm2管理,用pm2 重启指定的 cd "${tagPath}/${workName}/${projectName}/deploy" npm run build #yarn run pm2:stop vite-${workName}-${projectName} cd "${tagPath}/${workName}/${projectName}/deploy/" if [[ ! -d "${tagPath}/${workName}/${projectName}/deploy/dist/yslz/funclib/desklib" ]]; then mkdir -p "${tagPath}/${workName}/${projectName}/deploy/dist/yslz/funclib/desklib" fi cp -rf "${tagPath}/${workName}/${projectName}/deploy/yslz/funclib/desklib" "${tagPath}/${workName}/${projectName}/deploy/dist/yslz/funclib/" zip -q -r "${workName}_${projectName}_dist.zip" ./dist if [[ ! -d "$uploadPath" ]]; then echo "${oper} 命令: 上传文件夹不存在, 正在帮您创建目录..." mkdir -p "${uploadPath}" fi echo "正在拷到服务器目录:${uploadPath}" # cp -f "${workName}_${projectName}_dist.zip" "${uploadPath}" cp -fv "${workName}_${projectName}_dist.zip" "${uploadPath}" echo "(‐^▽^‐) 编译打包成功!" fi if [ $oper = "sync" ] ; then git clone http://192.168.4.105:8080/gitbucket/git/08335/hivui-platform-template.git "${gitTmp}" echo ${gitTmp} echo ${tmpPath} rsync -auz "${gitTmp}/" ${tmpPath} rm -rf ${gitTmp} if [ $syncWay = "build" ] ; then echo "正在同步build..." rsync -auz ${tmpPath}/build ${tagPath}/${workName}/${projectName}/deploy/ rsync -auz ${tmpPath}/babel.config.js ${tagPath}/${workName}/${projectName}/deploy/ rsync -auz ${tmpPath}/.postcssrc.js ${tagPath}/${workName}/${projectName}/deploy/ rsync -auz ${tmpPath}/.browserslistrc ${tagPath}/${workName}/${projectName}/deploy/ echo "build已同步!" exit fi if [ $syncWay = "assets" ] ; then echo "正在同步assets_platform资源..." rsync -auz ${tmpPath}/assets_platform ${tagPath}/${workName}/${projectName}/deploy/ echo "assets_platform资源已同步!" exit fi if [ $syncWay = "login" ] ; then echo "正在同步login模块..." rsync -auz ${tmpPath}/project/hivuiLogin ${tagPath}/${workName}/${projectName}/deploy/${projectName}/ cd ${tagPath}/${workName}/${projectName}/deploy/${projectName}/hivuiLogin sed -i 's/<\/head>/'"${source[*]}"'<\/head>/g' index.html echo "login已同步!" exit fi if [ $syncWay = "main" ] ; then echo "正在同步main模块..." rsync -auz ${tmpPath}/project/hivuiMain ${tagPath}/${workName}/${projectName}/deploy/${projectName}/ cd ${tagPath}/${workName}/${projectName}/deploy/${projectName}/hivuiMain sed -i 's/<\/head>/'"${source[*]}"'<\/head>/g' index.html echo "main已同步!" exit fi if [ $syncWay = "hiui" ] ; then echo "正在同步hi-ui库..." cd "${tmpPath}/" npm i hi-ui -S rm -rf ${tagPath}/${workName}/${projectName}/deploy/node_modules/hi-ui rsync -auz ${tmpPath}/node_modules/hi-ui ${tagPath}/${workName}/${projectName}/deploy/node_modules/ echo "hiui已同步!" fi if [ $syncWay = "task" ] ; then echo "正在同步hi-taskcenter库..." cd "${tmpPath}/" npm i hi-ui -S rm -rf ${tagPath}/${workName}/${projectName}/deploy/node_modules/hi-taskcenter rsync -auz ${tmpPath}/node_modules/hi-taskcenter ${tagPath}/${workName}/${projectName}/deploy/node_modules/ echo "hi-taskcenter已同步!" fi if [ $syncWay = "mod" ] ; then echo "正在同步node_modules环境..." cd "${tmpPath}/" npm i rsync -auz ${tmpPath}/node_modules ${tagPath}/${workName}/${projectName}/deploy/ echo "node_modules已同步!" fi if [ $syncWay = "config" ] ; then echo "正在同步配置环境, .evn文件、vite.config.js、babel.config.js、.postcssrc.js ..." cd "${tmpPath}/" npm i rsync -auz ${tmpPath}/.env.development ${tagPath}/${workName}/${projectName}/deploy/.env.development rsync -auz ${tmpPath}/.env.production ${tagPath}/${workName}/${projectName}/deploy/.env.production rsync -auz ${tmpPath}/.env.staging ${tagPath}/${workName}/${projectName}/deploy/.env.staging rsync -auz ${tmpPath}/vite.config.js ${tagPath}/${workName}/${projectName}/deploy/vite.config.js rsync -auz ${tmpPath}/babel.config.js ${tagPath}/${workName}/${projectName}/deploy/babel.config.js rsync -auz ${tmpPath}/.postcssrc.js ${tagPath}/${workName}/${projectName}/deploy/.postcssrc.js echo "配置环境已同步!" fi rsync -auz ${tmpPath}/package.json ${tagPath}/${workName}/${projectName}/deploy/package.json cd ${tagPath}/${workName}/${projectName}/deploy/ ## 替换 package.json 的 name 值 sed -i 's#\("name": \?"\).*#\1'"${projectName}"'",#g' package.json pm2 delete "vite-${workName}-${projectName}" npm run rm:vite npm run pm2:start pm2 save fi
#!/bin/bash ## 权限问题,用 chmod u+x *.sh ## eg: ## cd /mobileproject/$1/XcxProject hivui create $1 if [ $# -gt 4 ] ; then echo "$3 操作命令有误,请重新输入!" exit 1 fi # basePath='/opt/eap5/desktop' basePath='/eap5.0/desktop' tagPath=$basePath'/preview' # tmpPath=$basePath'/project-template' tmpPath='/eap5.0/hiruntime/project/desktop/project-template' gitTmp='/eap5.0/hiruntime/project/desktop/__gittmp' workName=$1 projectName=$2 oper=$3 uploadPath=$4 syncWay=$4 source[0]='\t<% if(htmlWebpackPlugin.vite){%>\n\t<!--预览时 公共库-->' source[1]='\n\t<script src="\/'$projectName'\/setting\/desktop\/appsetting\/js\/1.0.0\/appsetting.js" type="text\/javascript"><\/script>' source[2]='\n\t<%}%>' source[3]='\n\t<% if(!htmlWebpackPlugin.vite){%>\n\t<!--发布时 公共库-->' source[4]='\n\t<script src="\/${serverName}\/render\/'${workName}'\/'$projectName'\/setting\/desktop\/appsetting\/js\/1.0.0\/appsetting.js" type="text\/javascript"><\/script>' source[5]='\n\t<%}%>\n' ## aaa=$(pm2 id "vite-${workName}-${projectName}") ## [] 说明服务有启动但是,没有执行 ## if [ ${#aaa} = 2 ] ; then ## echo "===================" ## fi ## 参数 工号$1 项目名$2 端口$3 ## 工号=工作空间 ## 1、判断工作空间 没有就创建 # if [ ! -d "${tagPath}/${workName}" ];then # echo "${oper} 命令: 工作空间不存在!" # exit 1 # fi ## 2、判断项目名 if [ ! -d "${tagPath}/${workName}/${projectName}" ];then echo "${oper} 命令: 项目名不存在!" # exit 1 fi ## 返回预览目录 # cd ${tagPath}/${workName}/${projectName}/deploy if [ $3 = "restart" ] ; then ### 用pm2管理,用pm2 重启指定的 pm2 restart "vite-${workName}-${projectName}" #yarn run pm2:restart vite-${workName}-${projectName} fi if [ $3 = "start" ] ; then pm2 delete "vite-${workName}-${projectName}" ### 用pm2管理,用pm2 重启指定的 cd ${tagPath}/${workName}/${projectName}/deploy yarn run pm2:start fi if [ $oper = "kill" ] ; then ### 用pm2管理,用pm2 重启指定的 pm2 delete "vite-${workName}-${projectName}" #yarn run pm2:kill vite-${workName}-${projectName} fi if [ $oper = "stop" ] ; then ### 用pm2管理,用pm2 重启指定的 pm2 stop "vite-${workName}-${projectName}" #yarn run pm2:stop vite-${workName}-${projectName} fi if [ $oper = "del" ] ; then if [ $workName = "admin" -a $projectName = "systpl" ] ; then echo "系统模板,不可删除!" exit 1 fi curPid=`pm2 pid vite-${workName}-${projectName}` if [ ! -z "$curPid" ];then echo "vite-${workName}-${projectName} 服务正在关闭!" pm2 delete "vite-${workName}-${projectName}" fi ### 删除用户项目 cd "${tagPath}/${workName}" rm -r -f "${projectName}" echo "vite-${workName}-${projectName} 删除成功!" fi if [ $oper = "build" ] ; then ### 用pm2管理,用pm2 重启指定的 cd "${tagPath}/${workName}/${projectName}/deploy" npm run build #yarn run pm2:stop vite-${workName}-${projectName} cd "${tagPath}/${workName}/${projectName}/deploy/" if [[ ! -d "${tagPath}/${workName}/${projectName}/deploy/dist/yslz/funclib/desklib" ]]; then mkdir -p "${tagPath}/${workName}/${projectName}/deploy/dist/yslz/funclib/desklib" fi cp -rf "${tagPath}/${workName}/${projectName}/deploy/yslz/funclib/desklib" "${tagPath}/${workName}/${projectName}/deploy/dist/yslz/funclib/" zip -q -r "${workName}_${projectName}_dist.zip" ./dist if [[ ! -d "$uploadPath" ]]; then echo "${oper} 命令: 上传文件夹不存在, 正在帮您创建目录..." mkdir -p "${uploadPath}" fi echo "正在拷到服务器目录:${uploadPath}" # cp -f "${workName}_${projectName}_dist.zip" "${uploadPath}" cp -fv "${workName}_${projectName}_dist.zip" "${uploadPath}" echo "(‐^▽^‐) 编译打包成功!" fi if [ $oper = "sync" ] ; then git clone http://192.168.4.105:8080/gitbucket/git/08335/hivui-platform-template.git "${gitTmp}" echo ${gitTmp} echo ${tmpPath} rsync -auz "${gitTmp}/" ${tmpPath} rm -rf ${gitTmp} if [ $syncWay = "build" ] ; then echo "正在同步build..." rsync -auz ${tmpPath}/build ${tagPath}/${workName}/${projectName}/deploy/ rsync -auz ${tmpPath}/babel.config.js ${tagPath}/${workName}/${projectName}/deploy/ rsync -auz ${tmpPath}/.postcssrc.js ${tagPath}/${workName}/${projectName}/deploy/ rsync -auz ${tmpPath}/.browserslistrc ${tagPath}/${workName}/${projectName}/deploy/ echo "build已同步!" exit fi if [ $syncWay = "assets" ] ; then echo "正在同步assets_platform资源..." rsync -auz ${tmpPath}/assets_platform ${tagPath}/${workName}/${projectName}/deploy/ echo "assets_platform资源已同步!" exit fi if [ $syncWay = "login" ] ; then echo "正在同步login模块..." rsync -auz ${tmpPath}/project/hivuiLogin ${tagPath}/${workName}/${projectName}/deploy/${projectName}/ cd ${tagPath}/${workName}/${projectName}/deploy/${projectName}/hivuiLogin sed -i 's/<\/head>/'"${source[*]}"'<\/head>/g' index.html echo "login已同步!" exit fi if [ $syncWay = "main" ] ; then echo "正在同步main模块..." rsync -auz ${tmpPath}/project/hivuiMain ${tagPath}/${workName}/${projectName}/deploy/${projectName}/ cd ${tagPath}/${workName}/${projectName}/deploy/${projectName}/hivuiMain sed -i 's/<\/head>/'"${source[*]}"'<\/head>/g' index.html echo "main已同步!" exit fi if [ $syncWay = "hiui" ] ; then echo "正在同步hi-ui库..." cd "${tmpPath}/" npm i hi-ui -S rm -rf ${tagPath}/${workName}/${projectName}/deploy/node_modules/hi-ui rsync -auz ${tmpPath}/node_modules/hi-ui ${tagPath}/${workName}/${projectName}/deploy/node_modules/ echo "hiui已同步!" fi if [ $syncWay = "task" ] ; then echo "正在同步hi-taskcenter库..." cd "${tmpPath}/" npm i hi-ui -S rm -rf ${tagPath}/${workName}/${projectName}/deploy/node_modules/hi-taskcenter rsync -auz ${tmpPath}/node_modules/hi-taskcenter ${tagPath}/${workName}/${projectName}/deploy/node_modules/ echo "hi-taskcenter已同步!" fi if [ $syncWay = "mod" ] ; then echo "正在同步node_modules环境..." cd "${tmpPath}/" npm i rsync -auz ${tmpPath}/node_modules ${tagPath}/${workName}/${projectName}/deploy/ echo "node_modules已同步!" fi rsync -auz ${tmpPath}/package.json ${tagPath}/${workName}/${projectName}/deploy/package.json cd ${tagPath}/${workName}/${projectName}/deploy/ ## 替换 package.json 的 name 值 sed -i 's#\("name": \?"\).*#\1'"${projectName}"'",#g' package.json pm2 delete "vite-${workName}-${projectName}" npm run rm:vite npm run pm2:start pm2 save fi
Ignore Space
Show notes
View
package.json
{ "name": "hi-vui-template", "version": "1.0.5", "description": "A hi-vui-template project", "author": "caibinghong <caibinghong@163.com>", "scripts": { "pm2:start": "pm2 start processes.json", "pm2:restart": "pm2 restart all", "pm2:stop": "pm2 stop ", "pm2:log": "pm2 logs ", "pm2:cpu": "pm2 monit ", "pm2:kill": "pm2 delete ", "dev1": "vite --host", "dev": "vite", "dev:staging": " vite --mode staging", "vite-build": "vite build", "vite-serve": "vite preview", "rm:vite": "rimraf node_modules/.vite & rimraf node_modules/.cache", "start": "npm run dev", "build": "node build/copyBaseAssets.js & node build/run.js", "build:debug": "node build/build.js", "build:login": "node build/build.js ./project/hivuiLogin", "build:main": "node build/run.js ./project/hivuiMain", "build:demo": "node build/run.js ./project/demo", "build:dll": "webpack --config=build/webpack.dll.js", "copyassets": "node build/copyBaseAssets.js" }, "dependencies": { "@babel/runtime-corejs3": "^7.14.6", "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", "axios": "^0.21.1", "classnames": "^2.3.1", "enquire.js": "^2.1.6", "font-awesome": "^4.7.0", "hi-taskcenter": "^1.0.2", "hi-ui": "^1.1.655", "lodash": "^4.17.21", "md5": "^2.3.0", "qs": "^6.10.1", "screenfull": "^5.1.0", "sortablejs": "^1.13.0", "vue": "^2.6.12", "vue-draggable-resizable": "^2.3.0", "vue-gemini-scrollbar": "^2.0.1", "vue-jstree": "^2.1.6", "vue-router": "^3.5.1", "vuex": "^3.6.2", "zhc-flowchart": "^1.0.7" }, "devDependencies": { "@babel/core": "^7.14.5", "@babel/plugin-transform-runtime": "^7.14.5", "@babel/preset-env": "^7.14.5", "@vitejs/plugin-vue-jsx": "^1.1.5", "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", "@vue/babel-preset-jsx": "^1.2.4", "add-asset-html-webpack-plugin": "^3.2.0", "autoprefixer": "^10.2.6", "babel-loader": "^8.2.2", "babel-plugin-component": "^1.1.1", "babel-plugin-syntax-jsx": "^6.18.0", "babel-plugin-transform-vite-meta-env": "^1.0.3", "css-loader": "^5.2.6", "css-minimizer-webpack-plugin": "^3.0.2", "dotenv": "^10.0.0", "file-loader": "^6.2.0", "html-webpack-plugin": "^5.3.2", "less": "^4.1.1", "less-loader": "^10.0.0", "mini-css-extract-plugin": "^1.6.1", "node-sass": "^4.13.0", "parallel-webpack": "^2.6.0", "postcss-import": "^14.0.2", "postcss-loader": "^6.1.0", "postcss-url": "^10.1.3", "rimraf": "^3.0.2", "sass": "^1.38.0", "sass-loader": "^8.0.2", "semver": "^5.4.1", "shelljs": "^0.7.8", "speed-measure-webpack-plugin": "^1.5.0", "svg-sprite-loader": "^3.5.2", "terser-webpack-plugin": "^5.1.4", "url-loader": "^4.1.1", "vite": "2.3.7", "vite-plugin-html": "^2.0.7", "vite-plugin-imp": "^2.0.7", "vite-plugin-pagedata": "^1.0.4", "vite-plugin-vue2": "^1.6.2", "vue-loader": "^15.9.7", "vue-style-loader": "^4.1.3", "vue-template-compiler": "^2.6.12", "webpack": "^5.40.0", "webpack-cli": "^4.7.2", "webpack-merge": "^5.8.0" }, "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" } }
{ "name": "hi-vui-template", "version": "1.0.5", "description": "A hi-vui-template project", "author": "caibinghong <caibinghong@163.com>", "scripts": { "pm2:start": "pm2 start processes.json", "pm2:restart": "pm2 restart all", "pm2:stop": "pm2 stop ", "pm2:log": "pm2 logs ", "pm2:cpu": "pm2 monit ", "pm2:kill": "pm2 delete ", "dev1": "vite --host", "dev": "vite", "vite-build": "vite build", "vite-serve": "vite preview", "rm:vite": "rimraf node_modules/.vite & rimraf node_modules/.cache", "start": "npm run dev", "build": "node build/copyBaseAssets.js & node build/run.js", "build:debug": "node build/build.js", "build:login": "node build/build.js ./project/hivuiLogin", "build:main": "node build/run.js ./project/hivuiMain", "build:demo": "node build/run.js ./project/demo", "build:dll": "webpack --config=build/webpack.dll.js", "copyassets": "node build/copyBaseAssets.js" }, "dependencies": { "@babel/runtime-corejs3": "^7.14.6", "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", "axios": "^0.21.1", "classnames": "^2.3.1", "enquire.js": "^2.1.6", "font-awesome": "^4.7.0", "hi-taskcenter": "^1.0.2", "hi-ui": "^1.1.655", "lodash": "^4.17.21", "md5": "^2.3.0", "qs": "^6.10.1", "screenfull": "^5.1.0", "sortablejs": "^1.13.0", "vue": "^2.6.12", "vue-draggable-resizable": "^2.3.0", "vue-gemini-scrollbar": "^2.0.1", "vue-jstree": "^2.1.6", "vue-router": "^3.5.1", "vuex": "^3.6.2", "zhc-flowchart": "^1.0.7" }, "devDependencies": { "@babel/core": "^7.14.5", "@babel/plugin-transform-runtime": "^7.14.5", "@babel/preset-env": "^7.14.5", "@vitejs/plugin-vue-jsx": "^1.1.5", "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", "@vue/babel-preset-jsx": "^1.2.4", "add-asset-html-webpack-plugin": "^3.2.0", "autoprefixer": "^10.2.6", "babel-loader": "^8.2.2", "babel-plugin-component": "^1.1.1", "babel-plugin-syntax-jsx": "^6.18.0", "babel-plugin-transform-vite-meta-env": "^1.0.3", "css-loader": "^5.2.6", "css-minimizer-webpack-plugin": "^3.0.2", "dotenv": "^10.0.0", "file-loader": "^6.2.0", "html-webpack-plugin": "^5.3.2", "less": "^4.1.1", "less-loader": "^10.0.0", "mini-css-extract-plugin": "^1.6.1", "node-sass": "^4.13.0", "parallel-webpack": "^2.6.0", "postcss-import": "^14.0.2", "postcss-loader": "^6.1.0", "postcss-url": "^10.1.3", "rimraf": "^3.0.2", "sass": "^1.38.0", "sass-loader": "^8.0.2", "semver": "^5.4.1", "shelljs": "^0.7.8", "speed-measure-webpack-plugin": "^1.5.0", "svg-sprite-loader": "^3.5.2", "terser-webpack-plugin": "^5.1.4", "url-loader": "^4.1.1", "vite": "2.3.7", "vite-plugin-html": "^2.0.7", "vite-plugin-imp": "^2.0.7", "vite-plugin-pagedata": "^1.0.4", "vite-plugin-vue2": "^1.6.2", "vue-loader": "^15.9.7", "vue-style-loader": "^4.1.3", "vue-template-compiler": "^2.6.12", "webpack": "^5.40.0", "webpack-cli": "^4.7.2", "webpack-merge": "^5.8.0" }, "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" } }
Ignore Space
Show notes
View
project/demo/index.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <title>EAP5-Admin-Login</title> <% if(htmlWebpackPlugin.vite){%> <!--预览时 公共库--> <link rel="stylesheet" href="/assets_platform/element-ui/index.css"> <script src="/assets_platform/vue/vue.min.js"></script> <script src="/assets_platform/element-ui/index.js"></script> <script src="/assets_platform/eap/eap.umd.min.js"></script> <%}%> <% if(!htmlWebpackPlugin.vite){%> <!--发布时 公共库--> <link rel="stylesheet" href="/freemark/render/assets_platform/element-ui/index.css"> <script src="/freemark/render/assets_platform/vue/vue.min.js"></script> <script src="/freemark/render/assets_platform/element-ui/index.js"></script> <script src="/freemark/render/assets_platform/vendor_dll/vuelibs.dll.js"></script> <script src="/freemark/render/assets_platform/vendor_dll/vendor.dll.js"></script> <script src="/freemark/render/assets_platform/eap/eap.umd.min.js"></script> <%}%> <!-- <script src="/eaptpl/setting/desktop/appsetting/js/1.0.0/appsetting.js" type="text/javascript"></script> --> </head> <body> <div id="app"></div> <% if(htmlWebpackPlugin.vite==true){%> <script type="module" src="./index.js"></script> <%}%> <% if(htmlWebpackPlugin.mode){%> <%=htmlWebpackPlugin.mode %> <%}%> <!-- built files will be auto injected --> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <title>EAP5-Admin-Login</title> <% if(htmlWebpackPlugin.vite){%> <!--预览时 公共库--> <link rel="stylesheet" href="/assets_platform/element-ui/index.css"> <script src="/assets_platform/vue/vue.min.js"></script> <script src="/assets_platform/element-ui/index.js"></script> <script src="/assets_platform/eap/eap.umd.min.js"></script> <%}%> <% if(!htmlWebpackPlugin.vite){%> <link rel="stylesheet" href="/freemark/render/assets_platform/element-ui/index.css"> <script src="/freemark/render/assets_platform/vue/vue.min.js"></script> <script src="/freemark/render/assets_platform/element-ui/index.js"></script> <!--发布时 公共库--> <script src="/freemark/render/assets_platform/vendor_dll/vuelibs.dll.js"></script> <script src="/freemark/render/assets_platform/vendor_dll/vendor.dll.js"></script> <script src="/freemark/render/assets_platform/eap/eap.umd.min.js"></script> <%}%> <!-- <script src="/eaptpl/setting/desktop/appsetting/js/1.0.0/appsetting.js" type="text/javascript"></script> --> </head> <body> <div id="app"></div> <% if(htmlWebpackPlugin.vite==true){%> <script type="module" src="./index.js"></script> <%}%> <!-- built files will be auto injected --> </body> </html>
Ignore Space
Show notes
View
vite.config.js
// vite.config.js 利害浏览器自带的 es 动态导入,使项目冷启动 const { resolve } = require('path'); import { defineConfig, loadEnv } from 'vite' import { createVuePlugin } from "vite-plugin-vue2"; import vueJsx from '@vitejs/plugin-vue-jsx' import pageData from "vite-plugin-pagedata" import vitefunc from './vite-plugin/vite-plugin-func' import { injectHtml } from 'vite-plugin-html'; const pkg = require("./package.json"); // https://vitejs.dev/config/ export default ({ mode }) => { process.env = { ...process.env, ...loadEnv(mode, process.cwd()) }; let aliases = {} let build = { sourcemap: false, //编译 //指定 多个 .html 文件作为入口点 rollupOptions: { // 请确保外部化那些你的库中不需要的依赖 // external: ['vue'], input: { main: resolve(__dirname, 'index.html'), nested: resolve(__dirname, 'nested/index.html') }, output: { format: 'umd', } } } if (mode == 'development') { aliases = { '@project': resolve(`${pkg.name == 'hi-vui-template' ? 'project' : pkg.name}`), '@main': resolve(`${pkg.name == 'hi-vui-template' ? 'project' : pkg.name}/hivuiMain`), } // console.log('aliases@main:', aliases['@main']); } else { } const postDataName = "scpRequestData"; return defineConfig({ build: build, css: { preprocessorOptions: { less: { javascriptEnabled: true, } }, }, resolve: { extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue', '.dtvevt', '.dtv'], alias: aliases, }, plugins: [ vitefunc({ varName: postDataName, global:{ env:'dev' }, htmlWebpackPlugin: { vite: true, mode: mode } }), injectHtml({ // 向预览时注入变量,这个变量跟打包时 html-webpack-plugin 注入的一致,用户判断是否是编译状态 injectData: { htmlWebpackPlugin: { vite: true, mode: mode } } }), pageData({ varName: postDataName, global:{ env:'dev' }, }), createVuePlugin(), vueJsx({ // options are passed on to @vue/babel-plugin-jsx }), ], optimizeDeps: { //vite 排除,并同时js 文件中不引用。如果有引用还是会取vite 模板缓存中的文件,这样就无法引用全局 exclude: ["vue", "element-ui"] }, devServer: { port: 227, proxy: 'http://192.168.1.183:5001/' } }) };
// vite.config.js 利害浏览器自带的 es 动态导入,使项目冷启动 const { resolve } = require('path'); import { defineConfig, loadEnv } from 'vite' import { createVuePlugin } from "vite-plugin-vue2"; import vueJsx from '@vitejs/plugin-vue-jsx' import pageData from "vite-plugin-pagedata" import vitefunc from './vite-plugin/vite-plugin-func' import { injectHtml } from 'vite-plugin-html'; const pkg = require("./package.json"); // https://vitejs.dev/config/ export default ({ mode }) => { process.env = { ...process.env, ...loadEnv(mode, process.cwd()) }; let aliases = {} let build = { sourcemap: false, //编译 //指定 多个 .html 文件作为入口点 rollupOptions: { // 请确保外部化那些你的库中不需要的依赖 // external: ['vue'], input: { main: resolve(__dirname, 'index.html'), nested: resolve(__dirname, 'nested/index.html') }, output: { format: 'umd', } } } if (mode == 'development') { aliases = { '@project': resolve(`${pkg.name == 'hi-vui-template' ? 'project' : pkg.name}`), '@main': resolve(`${pkg.name == 'hi-vui-template' ? 'project' : pkg.name}/hivuiMain`), } // console.log('aliases@main:', aliases['@main']); } else { } const postDataName = "scpRequestData"; return defineConfig({ build: build, css: { preprocessorOptions: { less: { javascriptEnabled: true, } }, }, resolve: { extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue', '.dtvevt', '.dtv'], alias: aliases, }, plugins: [ vitefunc({ varName: postDataName, global:{ env:'dev' }, htmlWebpackPlugin: { vite: true } }), injectHtml({ // 向预览时注入变量,这个变量跟打包时 html-webpack-plugin 注入的一致,用户判断是否是编译状态 injectData: { htmlWebpackPlugin: { vite: true } } }), pageData({ varName: postDataName, global:{ env:'dev' }, }), createVuePlugin(), vueJsx({ // options are passed on to @vue/babel-plugin-jsx }), ], optimizeDeps: { //vite 排除,并同时js 文件中不引用。如果有引用还是会取vite 模板缓存中的文件,这样就无法引用全局 exclude: ["vue", "element-ui"] }, devServer: { port: 227, proxy: 'http://192.168.1.183:5001/' } }) };
Show line notes below