升级vite至6.0版本,升级包所有依赖版本

This commit is contained in:
283591387@qq.com
2025-08-02 00:36:25 +08:00
parent 26258ca850
commit 8ac898a407
23 changed files with 2005 additions and 5253 deletions

6918
vol.web/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,8 @@
{
"name": "vol",
"version": "3.5.0",
"private": true,
"version": "3.5.0",
"type": "module",
"scripts": {
"serve": "vite --host",
"dev": "vite --host",
@@ -15,48 +16,26 @@
"clean": "rimraf node_modules"
},
"dependencies": {
"@amap/amap-jsapi-loader": "^1.0.1",
"@microsoft/signalr": "^7.0.3",
"ali-oss": "^6.17.1",
"@microsoft/signalr": "^8.0.7",
"ali-oss": "^6.23.0",
"axios": "^1.3.4",
"core-js": "^3.29.0",
"echarts": "^5.4.1",
"echarts": "^5.6.0",
"element-plus": "^2.9.4",
"less": "^4.1.3",
"pinia": "^2.0.32",
"sortablejs": "^1.15.3",
"less": "^4.4.0",
"pinia": "^3.0.3",
"qrcode.vue": "^3.6.0",
"rollup-plugin-commonjs": "^10.1.0",
"sortablejs": "^1.15.3",
"vite-plugin-commonjs": "^0.10.1",
"vue": "^3.4.0",
"vue-draggable-next": "^2.1.1",
"vue-router": "^4.1.6",
"vue": "^3.5.13",
"vue-draggable-next": "^2.2.1",
"vue-router": "^4.5.1",
"vuex": "^4.1.0",
"wangeditor": "^4.7.15"
},
"devDependencies": {
"@babel/eslint-parser": "^7.21.3",
"@rushstack/eslint-patch": "^1.2.0",
"@types/jsdom": "^21.1.0",
"@types/node": "^18.14.2",
"@vitejs/plugin-vue": "^4.0.0",
"@vitejs/plugin-vue-jsx": "^3.0.0",
"@vue/eslint-config-prettier": "^7.1.0",
"@vue/eslint-config-typescript": "^11.0.2",
"@vue/test-utils": "^2.3.0",
"@vue/tsconfig": "^0.7.0",
"eslint": "^8.36.0",
"eslint-plugin-vue": "^9.9.0",
"jsdom": "^21.1.0",
"npm-run-all": "^4.1.5",
"prettier": "^2.8.4",
"rimraf": "^4.1.2",
"rollup-plugin-visualizer": "^5.9.0",
"stylus": "^0.59.0",
"typescript": "~5.7.3",
"vite": "^4.2.0",
"vite-plugin-require-transform": "^1.0.21",
"vitest": "^0.29.1",
"vue-tsc": "^1.2.0"
"@vitejs/plugin-vue": "^5.2.1",
"@vitejs/plugin-vue-jsx": "^4.0.0",
"typescript": "~5.6.2",
"vite": "^6.0.1",
"vue-tsc": "^2.1.10"
}
}

View File

@@ -22,7 +22,7 @@ export default {
},
};
</script>
<style lang="stylus">
<style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;

View File

@@ -10,7 +10,6 @@
></vol-table>
</template>
<script>
import VolTable from '@/components/basic/VolTable.vue';
import {
defineComponent,
ref,
@@ -20,7 +19,6 @@ import {
} from 'vue';
export default defineComponent({
components: {
VolTable
},
props: {
tableData: {

View File

@@ -454,7 +454,6 @@ import Empty from "@/components/basic/Empty.vue";
export default {
components: {
ViewGridExpand,
VolBox: defineAsyncComponent(() => import("@/components/basic/VolBox.vue")),
QuickSearch: defineAsyncComponent(() => import("@/components/basic/QuickSearch.vue")),
Audit: defineAsyncComponent(() => import("@/components/basic/Audit.vue")),
UploadExcel: defineAsyncComponent(() => import("@/components/basic/UploadExcel.vue")),

View File

@@ -304,14 +304,10 @@
<vol-image-viewer ref="viewer"></vol-image-viewer>
</template>
<script>
import VolTable from '@/components/basic/VolTable.vue'
import VolBox from '@/components/basic/VolBox.vue'
import VolImageViewer from '@/components/basic/VolImageViewer.vue'
import { defineComponent, ref, reactive, getCurrentInstance, computed } from 'vue'
export default defineComponent({
components: {
VolTable,
VolBox,
'vol-image-viewer': VolImageViewer,
},
emits: ['auditClick', 'signAfter', 'parentCall', 'flowLoadAfter'],

View File

@@ -596,7 +596,7 @@ import { getCellColor, formatDate, cellFormatter } from './VolTable/VolTableForm
import { tableRowClick, rowEndEdit } from './VolTable/VolTableEdit.js'
const VolTableUpload = defineAsyncComponent(() => import('./VolTable/VolTableUpload.vue'))
import VolLoading from '@/components/basic/VolLoading'
const VolImageViewer = defineAsyncComponent(() => import('@/components/basic/VolImageViewer.vue'))
import VolImageViewer from '@/components/basic/VolImageViewer.vue'
const emit = defineEmits([
'dicInited',
'loadBefore',

View File

@@ -35,7 +35,6 @@
<script setup>
import { ref, getCurrentInstance, defineAsyncComponent } from "vue";
const VolUpload = defineAsyncComponent(() => import("@/components/basic/VolUpload.vue"));
const VolBox = defineAsyncComponent(() => import("@/components/basic/VolBox.vue"));
const { proxy } = getCurrentInstance();
const row = ref({});
const column = ref({ message: null, edit: {} });

View File

@@ -98,7 +98,6 @@
</template>
<script>
let _this = this
export default {
props: {
tableName: {
@@ -172,7 +171,7 @@ export default {
})
}
})
_this.fieldsOptions = result
this.fieldsOptions = result
})
}
},
@@ -192,7 +191,6 @@ export default {
// }
},
created() {
_this = this
}
}
</script>

View File

@@ -61,7 +61,6 @@
</template>
<script>
import VolForm from '@/components/basic/VolForm.vue';
// import draggable from 'vuedraggable'
import { VueDraggableNext as draggable } from 'vue-draggable-next';
// import { jsPlumb } from 'jsplumb'
@@ -73,9 +72,6 @@ import nodeMenu from './node_menu';
// import FlowInfo from './info';
import FlowNodeForm from './node_form';
import lodash from 'lodash';
import { getDataDefault } from './data_default';
import { ForceDirected } from './force-directed';
export default {
props: {
@@ -175,8 +171,7 @@ export default {
draggable,
flowNode,
nodeMenu,
FlowNodeForm,
VolForm
FlowNodeForm
},
directives: {
flowDrag: {

View File

@@ -20,12 +20,10 @@
<script>
import FlowPanel from "@/components/workflow/panel";
import VolBox from "@/components/basic/VolBox.vue";
export default {
name: "App",
components: {
FlowPanel,
VolBox,
FlowPanel
},
data() {
return {

View File

@@ -28,10 +28,8 @@
</template>
<script>
import VolFormDraggable from "@/components/basic/VolFormDraggable/index.js";
import VolBox from "@/components/basic/VolBox.vue";
export default {
components: {
VolBox,
VolFormDraggable,
},
data() {

View File

@@ -23,11 +23,10 @@
</el-alert>
</template>
<script>
import VolBox from "@/components/basic/VolBox.vue";
import QuartzLog from "@/views/sys/quartz/Sys_QuartzLog";
//这里使用的vue2语法也可以写成vue3语法
export default {
components: { "vol-box": VolBox, QuartzLog },
components: {QuartzLog },
methods: {},
data() {
return {

View File

@@ -1,82 +0,0 @@
<template>
<vol-box :full="false" :lazy="true" v-model="model" :title="row.CustomName" :width="width" :padding="0"
>
<div :style="{ height: height + 'px' }">
<VolPrint ref="print" :is-box="true"></VolPrint>
</div>
<template #footer>
<div class="btns">
<el-button plain="" type="primary" size="small" @click="model = false">{{ $ts('关闭') }}</el-button>
<el-button type="primary" size="small" @click="saveClick">{{ $ts('保存') }}</el-button>
</div>
</template>
</vol-box>
</template>
<script setup>
import { onMounted, ref, getCurrentInstance, reactive, nextTick } from "vue";
import VolBox from '@/components/basic/VolBox.vue';
import VolPrint from '@/components/VolPrint/VolPrint.vue'
const model = ref(false);
const row = ref({})
const print = ref(null);
const open = (_row) => {
model.value = true;
row.value = _row;
nextTick(async () => {
await print.value.initPanel(_row,_row.TableName);
print.value.buildDesigner(_row.Options)
})
}
const { proxy } = getCurrentInstance();
const saveClick = () => {
const ops = print.value.exportJson();
row.value.Options = JSON.stringify(ops);
proxy.http.post("api/Sys_PrintOptions/update", { mainData: row.value }).then(result => {
if (result.status) {
proxy.$message.success(result.message)
return;
}
proxy.$message.error(result.message)
})
//model.value = false;
}
//onMounted
const height = ref(document.body.clientHeight - 150)// 150)
const width = ref(document.body.clientWidth * 0.95);
if (width.value > 1500) {
width.value = 1500;
}
defineExpose({
open
})
</script>
<script>
// import VolBox from '@/components/basic/VolBox.vue';
// import VolPrint from '@/components/VolPrint/VolPrint.vue'
// //这里使用的vue2语法也可以写成vue3语法
// export default {
// components: { 'vol-box': VolBox },
// methods: {},
// data() {
// return {
// model: false
// };
// },
// methods: {
// open() {
// this.model = true;
// }
// }
// };
</script>
<style lang="less" scoped>
.btns {
text-align: center;
}
</style>

View File

@@ -14,7 +14,7 @@
<!-- <img src="@/assets/imgs/logo.png" /> -->
</div>
<div class="vol-menu">
<el-scrollbar style="height: 100%; flex: 1">
<el-scrollbar style="height: 100%; flex: 1;border-right:0;">
<VolMenu
:currentMenuId="currentMenuId"
:on-select="onSelect"

View File

@@ -109,16 +109,10 @@
</template>
<script>
import builderData from './builderData.jsx'
import VolForm from '@/components/basic/VolForm.vue'
import VolTable from '@/components/basic/VolTable.vue'
import VolBox from '@/components/basic/VolBox.vue'
import VolHeader from '@/components/basic/VolHeader.vue'
import VolMenu from '@/components/basic/VolElementMenu.vue'
export default {
components: {
VolForm: VolForm,
VolTable: VolTable,
VolBox: VolBox,
VolHeader: VolHeader,
VolMenu
},
@@ -149,7 +143,7 @@ export default {
'layOutOptins.fields.vuePath'(val) {
localStorage.setItem('vuePath', val)
},
deep: true
//deep: true
//localStorage.setItem("vuePath", this.layOutOptins.fields.vuePath || "");
},
methods: {

View File

@@ -293,6 +293,7 @@
::v-deep(.el-tabs__nav) {
margin-left: 1px;
height: 35px !important;
}
::v-deep(.el-tabs__nav-prev),

View File

@@ -33,10 +33,8 @@
//默认不会自动重连需手动调用withAutomaticReconnect
let connection;
import * as signalR from '@microsoft/signalr';
import VolForm from '@/components/basic/VolForm.vue';
export default {
components: {
'vol-form': VolForm
},
data() {
return {

View File

@@ -103,8 +103,6 @@
</div>
</template>
<script lang="jsx">
import VolForm from "@/components/basic/VolForm.vue";
import VolBox from "@/components/basic/VolBox.vue";
import Icons from "@/components/basic/Icons.vue";
import VolMenu from "@/components/basic/VolElementMenu.vue";
import {
@@ -121,8 +119,6 @@ import {
import http from "@/api/http";
export default defineComponent({
components: {
VolForm: VolForm,
VolBox: VolBox,
Icons: Icons,
VolMenu,
},

26
vol.web/tsconfig.app.json Normal file
View File

@@ -0,0 +1,26 @@
{
"compilerOptions": {
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
"target": "ES2020",
"useDefineForClassFields": true,
"module": "ESNext",
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"isolatedModules": true,
"moduleDetection": "force",
"noEmit": true,
"jsx": "preserve",
/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true,
"noUncheckedSideEffectImports": true
},
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue", "src/main.js"]
}

View File

@@ -1,17 +1,15 @@
{
"extends": "@vue/tsconfig/tsconfig.dom.json",
"include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
"compilerOptions": {
"baseUrl": ".",
"allowJs": true,//js文件忽略提示
"paths": {
"@/*": ["./src/*"]
}
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "Node",
"strict": true,
"jsx": "preserve",
"sourceMap": true,
"resolveJsonModule": true,
"esModuleInterop": true,
"lib": ["ESNext", "DOM"]
},
"references": [
{
"path": "./tsconfig.node.json"
}
]
}
"include": ["src/**/*.js", "src/**/*.vue"],
"exclude": ["node_modules", "dist"]
}

View File

@@ -1,8 +1,24 @@
{
"extends": "@vue/tsconfig/tsconfig.node.json",
"include": ["vite.config.*", "vitest.config.*", "cypress.config.*", "playwright.config.*"],
"compilerOptions": {
"composite": true,
"types": ["node"]
}
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
"target": "ES2022",
"lib": ["ES2023"],
"module": "ESNext",
"skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"isolatedModules": true,
"moduleDetection": "force",
"noEmit": true,
/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true,
"noUncheckedSideEffectImports": true
},
"include": ["vite.config.ts"]
}

View File

@@ -1,52 +1,78 @@
import { fileURLToPath } from 'node:url'
import commonjs from 'vite-plugin-commonjs'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import { fileURLToPath } from "node:url";
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
//import { visualizer } from 'rollup-plugin-visualizer'
import vueJsx from "@vitejs/plugin-vue-jsx";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
commonjs(),
{
name: "remove-pure-annotations",
transform(code) {
return code.replace(/\/\*#__PURE__\*\//g, "");
},
},
vue(),
vueJsx(),
],
define: {
__VUE_PROD_HYDRATION_MISMATCH_DETAILS__: 'true'
__VUE_PROD_HYDRATION_MISMATCH_DETAILS__: "true",
},
optimizeDeps: {
exclude: ['vue']
exclude: ["vue"],
},
// base: '/test/',
build: {
//minify: false,
//minify: "terser",
commonjsOptions: {
transformMixedEsModules: true
transformMixedEsModules: true,
},
chunkSizeWarningLimit: 1000, // 提高警告阈值
rollupOptions: {
onwarn(warning, warn) {
if (warning.code === "EMPTY_BUNDLE"||warning.code === 'EVAL'||warning.message.includes('larger than')) {
return;
}
warn(warning);
},
// external: ["vue-plugin-hiprint"],
output: {
// 保留formatter变量名
//minifyInternalExports: false,
//每个node_modules模块分成一个js文件
manualChunks(id) {
if (id.includes('node_modules')) {
return id.toString().split('node_modules/')[1].split('/')[0].toString()
if (id.includes("node_modules")) {
return id
.toString()
.split("node_modules/")[1]
.split("/")[0]
.toString();
}
},
entryFileNames: 'assets/js/[hash].js',
chunkFileNames: 'assets/js/[hash].js',
assetFileNames: 'assets/[ext]/[hash].[ext]'
}
entryFileNames: "assets/js/[hash].js",
chunkFileNames: "assets/js/[hash].js",
assetFileNames: "assets/[ext]/[hash].[ext]",
},
},
sourcemap: false //生成源映射文件
// outDir: 'dist', // 输出目录,默认为 'dist'
// rollupOptions: {
// input: {
// main: 'src/main.js', // 你的入口文件
// }
// },
sourcemap: false, //生成源映射文件
},
publicDir: 'public', // 这里指定了 public 文件夹的位置
publicDir: "public", // 这里指定了 public 文件夹的位置
css: {
//查看CSS属于哪个css文件
devSourcemap: false
devSourcemap: false,
},
server: {
port: 9990
port: 9990,
//配置代理
// proxy: {//http.js里设置为空axios.defaults.baseURL = "";
// '/api': {
// target:'http://proapi.volcore.xyz/',
// target:'http://api.volcore.xyz/',
// changeOrigin: true,
// timeout:1000*60*10
// //rewrite: (path) => path.replace(/^\/api/, '')
@@ -54,9 +80,9 @@ export default defineConfig({
// }
},
resolve: {
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue', '.mjs'],
extensions: [".mjs", ".js", ".ts", ".jsx", ".tsx", ".json", ".vue", ".mjs"],
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
}
})
"@": fileURLToPath(new URL("./src", import.meta.url)),
},
},
});