diff --git a/code/app/base-app/.vscode/settings.json b/code/app/base-app/.vscode/settings.json
index b0d616e3..9f2f4482 100644
--- a/code/app/base-app/.vscode/settings.json
+++ b/code/app/base-app/.vscode/settings.json
@@ -33,6 +33,7 @@
"html",
"markdown",
"json",
+ "json5",
"jsonc",
"yaml",
"toml",
@@ -47,4 +48,4 @@
"pcss",
"postcss"
]
-}
\ No newline at end of file
+}
diff --git a/code/app/base-app/app/(tabs)/_layout.tsx b/code/app/base-app/app/(tabs)/_layout.tsx
new file mode 100644
index 00000000..2a89740c
--- /dev/null
+++ b/code/app/base-app/app/(tabs)/_layout.tsx
@@ -0,0 +1,23 @@
+import FontAwesome from '@expo/vector-icons/FontAwesome'
+import { Tabs } from 'expo-router'
+
+export default function TabLayout() {
+ return (
+
+ ,
+ }}
+ />
+ ,
+ }}
+ />
+
+ )
+}
diff --git a/code/app/base-app/app/(tabs)/index.tsx b/code/app/base-app/app/(tabs)/index.tsx
new file mode 100644
index 00000000..a1bad31c
--- /dev/null
+++ b/code/app/base-app/app/(tabs)/index.tsx
@@ -0,0 +1,17 @@
+import { StyleSheet, Text, View } from 'react-native'
+
+export default function Tab() {
+ return (
+
+ Tab [Home]
+
+ )
+}
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+})
diff --git a/code/app/base-app/app/(tabs)/settings.tsx b/code/app/base-app/app/(tabs)/settings.tsx
new file mode 100644
index 00000000..e7aceecc
--- /dev/null
+++ b/code/app/base-app/app/(tabs)/settings.tsx
@@ -0,0 +1,17 @@
+import { StyleSheet, Text, View } from 'react-native'
+
+export default function Tab() {
+ return (
+
+ Tab [Settings]
+
+ )
+}
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+})
diff --git a/code/app/base-app/app/_layout.tsx b/code/app/base-app/app/_layout.tsx
index 6f2d471e..3b6b5142 100644
--- a/code/app/base-app/app/_layout.tsx
+++ b/code/app/base-app/app/_layout.tsx
@@ -1,5 +1,4 @@
import { Stack } from 'expo-router'
-import { StyleSheet } from 'react-native'
export default function Layout() {
return (
@@ -10,19 +9,9 @@ export default function Layout() {
}}
>
- {/* 其他页面可以在这里添加 */}
)
}
-
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- backgroundColor: 'black',
- },
-})
diff --git a/code/app/base-app/app/index.tsx b/code/app/base-app/app/index.tsx
deleted file mode 100644
index 55e822ce..00000000
--- a/code/app/base-app/app/index.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Button, Text, View } from 'react-native'
-import { useCounter } from '@/hooks/useCounter'
-
-export default function App() {
- const { count, increment, decrement, reset } = useCounter(0)
-
- return (
-
-
- Welcome to Nativewind!
-
-
- Count:
- {count}
-
-
-
-
- )
-}
diff --git a/code/app/base-app/eslint.config.js b/code/app/base-app/eslint.config.mjs
similarity index 95%
rename from code/app/base-app/eslint.config.js
rename to code/app/base-app/eslint.config.mjs
index 4978d58b..77c76224 100644
--- a/code/app/base-app/eslint.config.js
+++ b/code/app/base-app/eslint.config.mjs
@@ -1,4 +1,3 @@
-// eslint.config.js
import antfu from '@antfu/eslint-config'
export default antfu({
diff --git a/code/app/base-app/package.json b/code/app/base-app/package.json
index 47ac2201..8e0178d3 100644
--- a/code/app/base-app/package.json
+++ b/code/app/base-app/package.json
@@ -10,11 +10,14 @@
"web": "expo start --web"
},
"dependencies": {
+ "@expo/vector-icons": "^15.0.3",
"expo": "~54.0.18",
+ "expo-blur": "~15.0.7",
"expo-constants": "~18.0.10",
"expo-linking": "~8.0.8",
"expo-router": "~6.0.13",
"expo-status-bar": "~3.0.8",
+ "lottie-react-native": "^7.3.4",
"react": "19.1.0",
"react-native": "0.81.5",
"react-native-reanimated": "^4.1.3",
@@ -25,7 +28,7 @@
"@antfu/eslint-config": "^6.0.0",
"@babel/core": "^7.28.4",
"@types/react": "~19.1.0",
- "eslint": "^9.38.0",
+ "eslint": "^9.37.0",
"typescript": "~5.9.2"
}
}
diff --git a/code/app/base-app/plugins/withAndroidSignature.js b/code/app/base-app/plugins/withAndroidSignature.js
index e0fb80bc..d0363122 100644
--- a/code/app/base-app/plugins/withAndroidSignature.js
+++ b/code/app/base-app/plugins/withAndroidSignature.js
@@ -16,7 +16,7 @@ module.exports = function withAndroidSignature(config) {
};
function setAndroidSignature(appBuildGradle) {
- if (!fs.existsSync(path.resolve(__dirname, "../credentials.json"))) {
+ if (!fs.existsSync(path.resolve(__dirname, "../credentials/credentials.json"))) {
console.warn("警告:没有设置正式版本的 Android Keystore 文件,因为 credentials.json 不存在。");
return appBuildGradle;
}
diff --git a/code/app/base-app/pnpm-lock.yaml b/code/app/base-app/pnpm-lock.yaml
index 89ef0147..66252208 100644
--- a/code/app/base-app/pnpm-lock.yaml
+++ b/code/app/base-app/pnpm-lock.yaml
@@ -8,9 +8,15 @@ importers:
.:
dependencies:
+ '@expo/vector-icons':
+ specifier: ^15.0.3
+ version: 15.0.3(expo-font@14.0.9(expo@54.0.18)(react-native@0.81.5(@babel/core@7.28.4)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.4)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
expo:
specifier: ~54.0.18
version: 54.0.18(@babel/core@7.28.4)(@expo/metro-runtime@6.1.2)(expo-router@6.0.13)(react-native@0.81.5(@babel/core@7.28.4)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ expo-blur:
+ specifier: ~15.0.7
+ version: 15.0.7(expo@54.0.18)(react-native@0.81.5(@babel/core@7.28.4)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
expo-constants:
specifier: ~18.0.10
version: 18.0.10(expo@54.0.18)(react-native@0.81.5(@babel/core@7.28.4)(@types/react@19.1.17)(react@19.1.0))
@@ -23,6 +29,9 @@ importers:
expo-status-bar:
specifier: ~3.0.8
version: 3.0.8(react-native@0.81.5(@babel/core@7.28.4)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ lottie-react-native:
+ specifier: ^7.3.4
+ version: 7.3.4(react-native@0.81.5(@babel/core@7.28.4)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
react:
specifier: 19.1.0
version: 19.1.0
@@ -41,7 +50,7 @@ importers:
devDependencies:
'@antfu/eslint-config':
specifier: ^6.0.0
- version: 6.0.0(@vue/compiler-sfc@3.5.22)(eslint-plugin-format@1.0.2(eslint@9.38.0))(eslint@9.38.0)(typescript@5.9.3)
+ version: 6.0.0(@vue/compiler-sfc@3.5.22)(eslint@9.38.0)(typescript@5.9.3)
'@babel/core':
specifier: ^7.28.4
version: 7.28.4
@@ -49,7 +58,7 @@ importers:
specifier: ~19.1.0
version: 19.1.17
eslint:
- specifier: ^9.38.0
+ specifier: ^9.37.0
version: 9.38.0
typescript:
specifier: ~5.9.2
@@ -632,15 +641,6 @@ packages:
'@clack/prompts@0.11.0':
resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==}
- '@dprint/formatter@0.3.0':
- resolution: {integrity: sha512-N9fxCxbaBOrDkteSOzaCqwWjso5iAe+WJPsHC021JfHNj2ThInPNEF13ORDKta3llq5D1TlclODCvOvipH7bWQ==}
-
- '@dprint/markdown@0.17.8':
- resolution: {integrity: sha512-ukHFOg+RpG284aPdIg7iPrCYmMs3Dqy43S1ejybnwlJoFiW02b+6Bbr5cfZKFRYNP3dKGM86BqHEnMzBOyLvvA==}
-
- '@dprint/toml@0.6.4':
- resolution: {integrity: sha512-bZXIUjxr0LIuHWshZr/5mtUkOrnh0NKVZEF6ACojW5z7zkJu7s9sV2mMXm8XQDqN4cJzdHYUYzUyEGdfciaLJA==}
-
'@es-joy/jsdoccomment@0.50.2':
resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==}
engines: {node: '>=18'}
@@ -933,10 +933,6 @@ packages:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
- '@pkgr/core@0.1.2':
- resolution: {integrity: sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==}
- engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
-
'@pkgr/core@0.2.9':
resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
@@ -2004,11 +2000,6 @@ packages:
eslint-flat-config-utils@2.1.4:
resolution: {integrity: sha512-bEnmU5gqzS+4O+id9vrbP43vByjF+8KOs+QuuV4OlqAuXmnRW2zfI/Rza1fQvdihQ5h4DUo0NqFAiViD4mSrzQ==}
- eslint-formatting-reporter@0.0.0:
- resolution: {integrity: sha512-k9RdyTqxqN/wNYVaTk/ds5B5rA8lgoAmvceYN7bcZMBwU7TuXx5ntewJv81eF3pIL/CiJE+pJZm36llG8yhyyw==}
- peerDependencies:
- eslint: '>=8.40.0'
-
eslint-json-compat-utils@0.2.1:
resolution: {integrity: sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==}
engines: {node: '>=12'}
@@ -2025,9 +2016,6 @@ packages:
peerDependencies:
eslint: '*'
- eslint-parser-plain@0.1.1:
- resolution: {integrity: sha512-KRgd6wuxH4U8kczqPp+Oyk4irThIhHWxgFgLDtpgjUGVIS3wGrJntvZW/p6hHq1T4FOwnOtCNkvAI4Kr+mQ/Hw==}
-
eslint-plugin-antfu@3.1.1:
resolution: {integrity: sha512-7Q+NhwLfHJFvopI2HBZbSxWXngTwBLKxW1AGXLr2lEGxcEIK/AsDs8pn8fvIizl5aZjBbVbVK5ujmMpBe4Tvdg==}
peerDependencies:
@@ -2044,11 +2032,6 @@ packages:
peerDependencies:
eslint: '>=8'
- eslint-plugin-format@1.0.2:
- resolution: {integrity: sha512-ySrDaLQZbreNAr/Betq6ocd5Hxy3+LBIfWNV2621EQQ6yGf/ZSLtN2MiM62WO2YQTX+nSFhv332Tpp51q+AkZQ==}
- peerDependencies:
- eslint: ^8.40.0 || ^9.0.0
-
eslint-plugin-import-lite@0.3.0:
resolution: {integrity: sha512-dkNBAL6jcoCsXZsQ/Tt2yXmMDoNt5NaBh/U7yvccjiK8cai6Ay+MK77bMykmqQA2bTF6lngaLCDij6MTO3KkvA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -2217,6 +2200,13 @@ packages:
react: '*'
react-native: '*'
+ expo-blur@15.0.7:
+ resolution: {integrity: sha512-SugQQbQd+zRPy8z2G5qDD4NqhcD7srBF7fN7O7yq6q7ZFK59VWvpDxtMoUkmSfdxgqONsrBN/rLdk00USADrMg==}
+ peerDependencies:
+ expo: '*'
+ react: '*'
+ react-native: '*'
+
expo-constants@18.0.10:
resolution: {integrity: sha512-Rhtv+X974k0Cahmvx6p7ER5+pNhBC0XbP1lRviL2J1Xl4sT2FBaIuIxF/0I0CbhOsySf0ksqc5caFweAy9Ewiw==}
peerDependencies:
@@ -2328,9 +2318,6 @@ packages:
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- fast-diff@1.3.0:
- resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
-
fast-glob@3.3.3:
resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
engines: {node: '>=8.6.0'}
@@ -2771,24 +2758,28 @@ packages:
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
lightningcss-linux-arm64-musl@1.30.2:
resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
+ libc: [musl]
lightningcss-linux-x64-gnu@1.30.2:
resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
lightningcss-linux-x64-musl@1.30.2:
resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
+ libc: [musl]
lightningcss-win32-arm64-msvc@1.30.2:
resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==}
@@ -2844,14 +2835,27 @@ packages:
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
hasBin: true
+ lottie-react-native@7.3.4:
+ resolution: {integrity: sha512-XUh7eGFb7ID8JRdU6U4N4cYQeYmjtdQRvd8ZXJ6xrdSsn5gZD0c79ITOREPcwJg4YupBFHgyV1GXdAHQP+KYUQ==}
+ peerDependencies:
+ '@lottiefiles/dotlottie-react': ^0.13.5
+ react: '*'
+ react-native: '>=0.46'
+ react-native-windows: '>=0.63.x'
+ peerDependenciesMeta:
+ '@lottiefiles/dotlottie-react':
+ optional: true
+ react-native-windows:
+ optional: true
+
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
- magic-string@0.30.19:
- resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==}
+ magic-string@0.30.21:
+ resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
makeerror@1.0.12:
resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
@@ -3394,15 +3398,6 @@ packages:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
- prettier-linter-helpers@1.0.0:
- resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
- engines: {node: '>=6.0.0'}
-
- prettier@3.6.2:
- resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==}
- engines: {node: '>=14'}
- hasBin: true
-
pretty-bytes@5.6.0:
resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
engines: {node: '>=6'}
@@ -3877,10 +3872,6 @@ packages:
resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==}
engines: {node: ^14.18.0 || >=16.0.0}
- synckit@0.9.3:
- resolution: {integrity: sha512-JJoOEKTfL1urb1mDoEblhD9NhEbWmq9jHEMEnxoC4ujUaZ4itA8vKgwkFAyNClgxplLi9tsUKX+EduK0p/l7sg==}
- engines: {node: ^14.18.0 || >=16.0.0}
-
tapable@2.3.0:
resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==}
engines: {node: '>=6'}
@@ -4248,7 +4239,7 @@ snapshots:
'@0no-co/graphql.web@1.2.0': {}
- '@antfu/eslint-config@6.0.0(@vue/compiler-sfc@3.5.22)(eslint-plugin-format@1.0.2(eslint@9.38.0))(eslint@9.38.0)(typescript@5.9.3)':
+ '@antfu/eslint-config@6.0.0(@vue/compiler-sfc@3.5.22)(eslint@9.38.0)(typescript@5.9.3)':
dependencies:
'@antfu/install-pkg': 1.1.0
'@clack/prompts': 0.11.0
@@ -4287,8 +4278,6 @@ snapshots:
toml-eslint-parser: 0.10.0
vue-eslint-parser: 10.2.0(eslint@9.38.0)
yaml-eslint-parser: 1.3.0
- optionalDependencies:
- eslint-plugin-format: 1.0.2(eslint@9.38.0)
transitivePeerDependencies:
- '@eslint/json'
- '@vue/compiler-sfc'
@@ -4922,15 +4911,6 @@ snapshots:
picocolors: 1.1.1
sisteransi: 1.0.5
- '@dprint/formatter@0.3.0':
- optional: true
-
- '@dprint/markdown@0.17.8':
- optional: true
-
- '@dprint/toml@0.6.4':
- optional: true
-
'@es-joy/jsdoccomment@0.50.2':
dependencies:
'@types/estree': 1.0.8
@@ -5467,9 +5447,6 @@ snapshots:
'@pkgjs/parseargs@0.11.0':
optional: true
- '@pkgr/core@0.1.2':
- optional: true
-
'@pkgr/core@0.2.9': {}
'@radix-ui/primitive@1.1.3': {}
@@ -6069,7 +6046,7 @@ snapshots:
'@vue/compiler-ssr': 3.5.22
'@vue/shared': 3.5.22
estree-walker: 2.0.2
- magic-string: 0.30.19
+ magic-string: 0.30.21
postcss: 8.5.6
source-map-js: 1.2.1
@@ -6614,12 +6591,6 @@ snapshots:
dependencies:
pathe: 2.0.3
- eslint-formatting-reporter@0.0.0(eslint@9.38.0):
- dependencies:
- eslint: 9.38.0
- prettier-linter-helpers: 1.0.0
- optional: true
-
eslint-json-compat-utils@0.2.1(eslint@9.38.0)(jsonc-eslint-parser@2.4.1):
dependencies:
eslint: 9.38.0
@@ -6630,9 +6601,6 @@ snapshots:
dependencies:
eslint: 9.38.0
- eslint-parser-plain@0.1.1:
- optional: true
-
eslint-plugin-antfu@3.1.1(eslint@9.38.0):
dependencies:
eslint: 9.38.0
@@ -6649,18 +6617,6 @@ snapshots:
eslint: 9.38.0
eslint-compat-utils: 0.5.1(eslint@9.38.0)
- eslint-plugin-format@1.0.2(eslint@9.38.0):
- dependencies:
- '@dprint/formatter': 0.3.0
- '@dprint/markdown': 0.17.8
- '@dprint/toml': 0.6.4
- eslint: 9.38.0
- eslint-formatting-reporter: 0.0.0(eslint@9.38.0)
- eslint-parser-plain: 0.1.1
- prettier: 3.6.2
- synckit: 0.9.3
- optional: true
-
eslint-plugin-import-lite@0.3.0(eslint@9.38.0)(typescript@5.9.3):
dependencies:
'@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0)
@@ -6910,6 +6866,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ expo-blur@15.0.7(expo@54.0.18)(react-native@0.81.5(@babel/core@7.28.4)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ dependencies:
+ expo: 54.0.18(@babel/core@7.28.4)(@expo/metro-runtime@6.1.2)(expo-router@6.0.13)(react-native@0.81.5(@babel/core@7.28.4)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ react: 19.1.0
+ react-native: 0.81.5(@babel/core@7.28.4)(@types/react@19.1.17)(react@19.1.0)
+
expo-constants@18.0.10(expo@54.0.18)(react-native@0.81.5(@babel/core@7.28.4)(@types/react@19.1.17)(react@19.1.0)):
dependencies:
'@expo/config': 12.0.10
@@ -7052,9 +7014,6 @@ snapshots:
fast-deep-equal@3.1.3: {}
- fast-diff@1.3.0:
- optional: true
-
fast-glob@3.3.3:
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -7538,13 +7497,18 @@ snapshots:
dependencies:
js-tokens: 4.0.0
+ lottie-react-native@7.3.4(react-native@0.81.5(@babel/core@7.28.4)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ dependencies:
+ react: 19.1.0
+ react-native: 0.81.5(@babel/core@7.28.4)(@types/react@19.1.17)(react@19.1.0)
+
lru-cache@10.4.3: {}
lru-cache@5.1.1:
dependencies:
yallist: 3.1.1
- magic-string@0.30.19:
+ magic-string@0.30.21:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
@@ -8479,14 +8443,6 @@ snapshots:
prelude-ls@1.2.1: {}
- prettier-linter-helpers@1.0.0:
- dependencies:
- fast-diff: 1.3.0
- optional: true
-
- prettier@3.6.2:
- optional: true
-
pretty-bytes@5.6.0: {}
pretty-format@29.7.0:
@@ -8982,12 +8938,6 @@ snapshots:
dependencies:
'@pkgr/core': 0.2.9
- synckit@0.9.3:
- dependencies:
- '@pkgr/core': 0.1.2
- tslib: 2.8.1
- optional: true
-
tapable@2.3.0: {}
tar@7.5.1:
diff --git a/code/app/base-app/tsconfig.json b/code/app/base-app/tsconfig.json
index 8f0dedc3..7b701cf1 100644
--- a/code/app/base-app/tsconfig.json
+++ b/code/app/base-app/tsconfig.json
@@ -1,14 +1,12 @@
{
"extends": "expo/tsconfig.base",
"compilerOptions": {
- "jsx": "react-native",
- "lib": ["esnext"],
"baseUrl": "./",
"paths": {
"@/*": ["src/*"]
},
"strict": true
},
- "include": ["./**/*.ts", "./**/*.tsx", "./**/*.vue", "src/types/auto-imports.d.ts"],
+ "include": ["./**/*.ts", "./**/*.tsx"],
"exclude": ["node_modules", "dist"]
}
diff --git a/notes/前端开发/react-native/expo.md b/notes/前端开发/react-native/expo.md
index d6526efe..6a9b2517 100644
--- a/notes/前端开发/react-native/expo.md
+++ b/notes/前端开发/react-native/expo.md
@@ -32,16 +32,21 @@ npx expo start
## 集成 [antfu-eslint](https://github.com/antfu/eslint-config)
+可以使用快捷命令:
+
+```bash
+pnpm dlx @antfu/eslint-config@latest
+```
+
安装:
```bash
pnpm i -D eslint @antfu/eslint-config
```
-新建 `eslint.config.js` 文件:
+新建 `eslint.config.mjs` 文件:
```js
-// eslint.config.js
import antfu from '@antfu/eslint-config'
export default antfu({
@@ -50,12 +55,12 @@ export default antfu({
quotes: 'single', // 使用单引号(可选 'double')
},
rules: {
- 'no-unused-vars': 'off', // 关闭未使用变量的报错
+ 'unused-imports/no-unused-imports': 'warn',
+ 'unused-imports/no-unused-vars': 'warn',
'@typescript-eslint/no-use-before-define': 'off', // 关闭 TS 的“定义前使用”警告
'no-console': 'off', // 关闭 console 报错
},
})
-
```
配置 vscode 模板,修改 `.vscode/settings.json` :