**生成基础文件**,后面要用到: ```bash npx expo customize babel.config.js npx expo customize metro.config.js ``` ## 配置eslint格式化 可以使用快捷命令(推荐): ```bash pnpm dlx @antfu/eslint-config@latest ``` 安装: ```bash pnpm i -D eslint @antfu/eslint-config ``` 新建 `eslint.config.mjs` 文件: ```js import antfu from '@antfu/eslint-config' export default antfu({ stylistic: { indent: 2, // 缩进为 2 个空格(可选 4 或 'tab') quotes: 'single', // 使用单引号(可选 'double') }, rules: { '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` : > 注意安装 eslint 插件 ```json { // Disable the default formatter, use eslint instead "prettier.enable": false, "editor.formatOnSave": false, // Auto fix "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit", "source.organizeImports": "never" }, // Silent the stylistic rules in you IDE, but still auto fix them "eslint.rules.customizations": [ { "rule": "style/*", "severity": "off", "fixable": true }, { "rule": "format/*", "severity": "off", "fixable": true }, { "rule": "*-indent", "severity": "off", "fixable": true }, { "rule": "*-spacing", "severity": "off", "fixable": true }, { "rule": "*-spaces", "severity": "off", "fixable": true }, { "rule": "*-order", "severity": "off", "fixable": true }, { "rule": "*-dangle", "severity": "off", "fixable": true }, { "rule": "*-newline", "severity": "off", "fixable": true }, { "rule": "*quotes", "severity": "off", "fixable": true }, { "rule": "*semi", "severity": "off", "fixable": true } ], // Enable eslint for all supported languages "eslint.validate": [ "javascript", "javascriptreact", "typescript", "typescriptreact", "vue", "html", "markdown", "json", "jsonc", "yaml", "toml", "xml", "gql", "graphql", "astro", "svelte", "css", "less", "scss", "pcss", "postcss" ] } ``` ## 配置深度链接 作用:通过链接就可以跳转到该app。 在 `app.json` 文件下进行配置: ```json { "expo": { "scheme": "oneao" } } ``` 然后就可以通过这个配置 从别的应用或者浏览器跳转到你的app: ``` oneao://courses/react-native ``` ## 定义 src 路径别名 @ > 参考:https://docs.expo.dev/guides/typescript/ 修改 `tsconfig.json` 文件: ```json { "extends": "expo/tsconfig.base", "compilerOptions": { "baseUrl": "./", "paths": { "@/*": ["src/*"] }, "strict": true } } ``` 安装 `module-resolver` : ``` pnpm add -D babel-plugin-module-resolver ``` 修改 `babel.config.js` : ```js module.exports = function (api) { api.cache(true) return { presets: [ ['babel-preset-expo', { jsxImportSource: 'nativewind' }], 'nativewind/babel', ], plugins: [ [ 'module-resolver', { root: ['./src'], alias: { '@': './src', }, }, ], ], } } ```