Преглед на файлове

oss配置调整与优化

徐滕 преди 3 дни
родител
ревизия
bc24f97eca
променени са 5 файла, в които са добавени 45 реда и са изтрити 10 реда
  1. 3 0
      .env.development
  2. 3 0
      .env.production
  3. 1 2
      src/api/sys/OSSService.js
  4. 20 8
      src/router/index.js
  5. 18 0
      vite.config.js

+ 3 - 0
.env.development

@@ -20,3 +20,6 @@ VITE_KEYCLOAK_URL = 'http://127.0.0.1:8180'
 VITE_KEYCLOAK_REALM = 'xg-cloud'
 #客户端名称
 VITE_KEYCLOAK_CLIENT_ID = 'xg-cloud-web'
+
+#OSS 仓库(测试环境,yarn dev 用)
+VITE_OSS_BUCKET = 'xgxm-test'

+ 3 - 0
.env.production

@@ -21,3 +21,6 @@ VITE_AUTH_MODE = 'legacy'
 VITE_KEYCLOAK_URL = 'http://127.0.0.1:8180'
 VITE_KEYCLOAK_REALM = 'xg-cloud'
 VITE_KEYCLOAK_CLIENT_ID = 'xg-cloud-web'
+
+#OSS 仓库(生产环境,yarn build 用)
+VITE_OSS_BUCKET = 'xg-pg'

+ 1 - 2
src/api/sys/OSSService.js

@@ -123,8 +123,7 @@ export const client = new OSS({
 	region: "oss-cn-hangzhou", // oss地址
 	accessKeyId: "LTAI5tKa6kzGr5EyPWJB4EcD", // 通过阿里云控制台创建的AccessKey ID。
 	accessKeySecret: "arHxB7ZPhizrBYf4844TtyaRctPMgW", // 通过阿里云控制台创建的AccessKey Secret。
-	bucket: "xgxm-test", // 仓库名字
-	// bucket: 'xg-pg', // 仓库名字
+	bucket: import.meta.env.VITE_OSS_BUCKET, // 仓库名字:由 .env 决定(dev=xgxm-test / build=xg-pg),勿在此硬编码切换
 	useFetch: true, // 支持上传大于100KB的文件
 	secure: false, // 返回的url为https
 });

+ 20 - 8
src/router/index.js

@@ -102,14 +102,26 @@ router.onError((error) => {
 		error.message.includes("Failed to fetch dynamically imported module") ||
 		error.message.includes("Importing a module script failed")
 	) {
-		ElNotification.warning({
-			title: "系统更新",
-			message: "检测到版本更新,正在刷新页面...",
-			duration: 2000,
-		});
-		setTimeout(() => {
-			window.location.reload();
-		}, 2000);
+		// 开发模式下这类失败大多是 Vite 按需预构建/热更新导致,Vite 自身会重载,
+		// 这里不再强制刷新(避免把依赖预构建误报成"版本更新"、并打断同页并行加载)。
+		// 生产模式保留原兜底:重新部署后旧 hash chunk 会 404,需刷新拿到新 index.html。
+		// import.meta.env.DEV 为编译期常量,build 时会被替换并 tree-shake 掉 dev 分支,生产行为不变。
+		if (import.meta.env.DEV) {
+			ElNotification.warning({
+				title: "开发提示",
+				message: "模块加载失败(Vite 依赖预构建/热更新),Vite 将自动重载;如未恢复请手动刷新。",
+				duration: 2000,
+			});
+		} else {
+			ElNotification.warning({
+				title: "系统更新",
+				message: "检测到版本更新,正在刷新页面...",
+				duration: 2000,
+			});
+			setTimeout(() => {
+				window.location.reload();
+			}, 2000);
+		}
 	} else {
 		ElNotification.error({
 			title: "路由错误",

+ 18 - 0
vite.config.js

@@ -41,6 +41,24 @@ export default ({ mode, command }) => {
       }
     }
   },
+  // 开发服务器依赖预构建:提前打包"业务页面/表单常用、但 main.js 未全局引入"的第三方库,
+  // 避免切到懒加载页面时 Vite 现场"发现新依赖 -> 重新预构建 -> 整页刷新"(会误触发路由 onError 的版本更新刷新)。
+  // 仅影响 dev(vite serve);Vite 3 build 阶段默认禁用依赖优化器,生产打包产物不受影响。
+  // 新增页面若仍偶发首次刷新,把该页面用到的库补进本列表即可。
+  optimizeDeps: {
+    include: [
+      'xe-utils',
+      'lodash.pick',
+      'lodash.omit',
+      'dayjs',
+      'echarts',
+      'vue-echarts',
+      'sortablejs',
+      'cropperjs',
+      '@wangeditor/editor',
+      '@wangeditor/editor-for-vue'
+    ]
+  },
   // vite 相关配置
   server: {
     port: 2800,