Jelajahi Sumber

fix: 修复打包脚本bug

BaiLuoYan 4 minggu lalu
induk
melakukan
c498df3c2e
4 mengubah file dengan 21 tambahan dan 12 penghapusan
  1. 1 4
      .env.development
  2. 6 0
      .env.localdev
  3. 11 6
      build/utils.ts
  4. 3 2
      package.json

+ 1 - 4
.env.development

@@ -1,6 +1,3 @@
 VITE_APP_ENV="development"
 
-VITE_DEV_PORT=8848
-
-VITE_API_BASE_URL="/dev/api/v1"
-VITE_DEV_PROXY_TARGET_API_BASE_URL="https://ow.clickto.dev/api/v1"
+VITE_API_BASE_URL="https://ow.clickto.dev/api/v1"

+ 6 - 0
.env.localdev

@@ -0,0 +1,6 @@
+VITE_APP_ENV="development"
+
+VITE_DEV_PORT=8848
+
+VITE_API_BASE_URL="/dev/api/v1"
+VITE_DEV_PROXY_TARGET_API_BASE_URL="https://ow.clickto.dev/api/v1"

+ 11 - 6
build/utils.ts

@@ -39,12 +39,14 @@ const wrapperEnv = (envConf: Recordable): ImportMetaEnv => {
 
     ret = Object.assign(ret, envConf);
 
-    const setEnv = (envName: string, envValue: string | object) => {
-        if (!envName.startsWith('VITE_DEV_')) return;
-        if (!envName.startsWith('VITE_BUILD_')) return;
+    const setEnv = (envName: string, envValue: string | number | boolean | object) => {
+        if (envName.startsWith('VITE_DEV_')) return; // 剔除开发环境变量,不写入 process.env
+        if (envName.startsWith('VITE_BUILD_')) return; // 剔除构建环境变量,不写入 process.env
         if (typeof envValue === 'string') {
             process.env[envName] = envValue;
-        } else if (typeof envValue === 'object') {
+        } else if (typeof envValue === 'number' || typeof envValue === 'boolean') {
+            process.env[envName] = String(envValue);
+        } else if (typeof envValue === 'object' && envValue !== null) {
             process.env[envName] = JSON.stringify(envValue);
         }
     };
@@ -56,8 +58,11 @@ const wrapperEnv = (envConf: Recordable): ImportMetaEnv => {
 
     // 然后用环境变量覆盖默认值
     for (const envName of Object.keys(envConf)) {
-        let envValue = envConf[envName].replace(/\\n/g, '\n');
-        envValue = envValue === 'true' ? true : envValue === 'false' ? false : envValue;
+        const raw = envConf[envName];
+        let envValue: string | number | boolean =
+            typeof raw === 'string' ? raw.replace(/\\n/g, '\n') : String(raw);
+        envValue =
+            envValue === 'true' ? true : envValue === 'false' ? false : envValue;
         if (envName === 'VITE_DEV_PORT') {
             envValue = Number(envValue);
         }

+ 3 - 2
package.json

@@ -12,11 +12,12 @@
     "ios >= 9"
   ],
   "scripts": {
-    "dev": "vite",
+    "dev": "vite --mode localdev",
     "build": "npm run build:prod",
+    "build:dev": "tsc && vite build --mode development",
     "build:prod": "tsc && vite build --mode production",
     "build:test": "tsc && vite build --mode test",
-    "preview": "vite preview",
+    "preview": "vite preview --mode localdev",
     "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
     "lint:fix": "eslint . --ext ts,tsx --fix",
     "stylelint": "stylelint \"src/**/*.{css,less,scss}\"",