瀏覽代碼

!192 chore: 标准化tsconfig和优化postcss配置
Merge pull request !192 from yangxu52/feture/standardize

疯狂的狮子Li 1 月之前
父節點
當前提交
9d7f3101b9
共有 3 個文件被更改,包括 37 次插入31 次删除
  1. 11 4
      package.json
  2. 24 20
      tsconfig.json
  3. 2 7
      vite.config.ts

+ 11 - 4
package.json

@@ -1,5 +1,5 @@
 {
-  "$schema": "https://json.schemastore.org/tsconfig",
+  "$schema": "https://json.schemastore.org/package",
   "name": "ruoyi-vue-plus",
   "version": "5.3.0",
   "description": "RuoYi-Vue-Plus多租户管理系统",
@@ -52,6 +52,7 @@
     "@types/crypto-js": "4.2.2",
     "@types/file-saver": "2.0.7",
     "@types/js-cookie": "3.0.6",
+    "@types/node": "^22.13.4",
     "@types/nprogress": "0.2.3",
     "@unocss/preset-attributify": "66.0.0",
     "@unocss/preset-icons": "66.0.0",
@@ -67,7 +68,7 @@
     "globals": "16.0.0",
     "prettier": "3.5.2",
     "sass": "1.84.0",
-    "typescript": "5.7.3",
+    "typescript": "~5.7.3",
     "unocss": "66.0.0",
     "unplugin-auto-import": "0.17.5",
     "unplugin-icons": "0.18.5",
@@ -78,10 +79,16 @@
     "vite-plugin-svg-icons-ng": "1.0.2",
     "vite-plugin-vue-devtools": "7.7.1",
     "vitest": "3.0.5",
-    "vue-tsc": "2.2.0"
+    "vue-tsc": "^2.2.2"
   },
   "engines": {
     "node": ">=18.18.0",
     "npm": ">=8.9.0"
-  }
+  },
+  "browserslist": [
+    "Chrome >= 87",
+    "Edge >= 88",
+    "Safari >= 14",
+    "Firefox >= 78"
+  ]
 }

+ 24 - 20
tsconfig.json

@@ -1,31 +1,35 @@
 {
+  "$schema": "https://json.schemastore.org/tsconfig",
   "compilerOptions": {
-    "target": "esnext",
-    "module": "esnext",
-    //    "useDefineForClassFields": true,
-    "moduleResolution": "bundler",
+    "baseUrl": ".",
+    // https://vite.dev/config/build-options.html#build-target
+    "target": "ES2020",
+    "module": "ESNext",
+    "moduleResolution": "Bundler",
+    "lib": ["ESNext", "DOM", "DOM.Iterable"],
+    "skipLibCheck": true,
+    // This setting lets you specify a file for storing incremental compilation information as a part of composite projects which enables faster building of larger TypeScript codebases.
+    "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.tsbuildinfo",
     "strict": true,
+    "allowJs": true,
     "jsx": "preserve",
-    "strictNullChecks": false,
     "sourceMap": true,
     "resolveJsonModule": true,
     "esModuleInterop": true,
-    "strictFunctionTypes": false,
-    "lib": ["esnext", "dom"],
-    "noImplicitAny": false,
-    "baseUrl": ".",
-    "allowJs": true,
-    "experimentalDecorators": true,
+    "noEmit": true,
     "paths": {
-      "@/*": ["src/*"]
+      "@/*": ["./src/*"]
     },
-    "types": ["vite/client"],
-    "skipLibCheck": true,
-    "removeComments": true,
-    // 允许默认导入
-    "allowSyntheticDefaultImports": true,
-    "forceConsistentCasingInFileNames": true
+    "types": ["node", "vite/client"],
+    // 自定义配置
+    "noImplicitAny": false, // 禁用 隐式的any错误
+    "removeComments": true, // 移除 ts注释
+    "experimentalDecorators": true, // 启用实验性的装饰器支持
+    "strictFunctionTypes": false, // 禁用严格函数类型检查
+    "strictNullChecks": false, // 禁用严格的空值检查
+    "allowSyntheticDefaultImports": true, // 允许默认导入
+    "forceConsistentCasingInFileNames": true // 强制在文件名中使用一致的大小写
   },
-  "include": ["src/**/*.ts", "src/**/*.vue", "src/types/**/*.d.ts", "vite.config.ts"],
-  "exclude": ["node_modules", "dist", "**/*.js", "**/*.md", "src/**/*.md"]
+  "include": ["src/**/.ts", "src/**/*.vue", "vite.config.ts", "vitest.config.ts", "eslint.config.ts"],
+  "exclude": ["node_modules", "dist", "src/**/__tests__/*"]
 }

+ 2 - 7
vite.config.ts

@@ -12,7 +12,6 @@ export default defineConfig(({ mode, command }) => {
     base: env.VITE_APP_CONTEXT_PATH,
     resolve: {
       alias: {
-        '~': path.resolve(__dirname, './'),
         '@': path.resolve(__dirname, './src')
       },
       extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
@@ -43,16 +42,12 @@ export default defineConfig(({ mode, command }) => {
       postcss: {
         plugins: [
           // 浏览器兼容性
-          autoprefixer({
-            overrideBrowserslist: ['Android 4.1', 'iOS 7.1', 'Chrome > 31', 'ff > 31', 'ie >= 8']
-          }),
+          autoprefixer(),
           {
             postcssPlugin: 'internal:charset-removal',
             AtRule: {
               charset: (atRule) => {
-                if (atRule.name === 'charset') {
-                  atRule.remove();
-                }
+                atRule.remove();
               }
             }
           }