You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Expo项目ESLint配置疑问:初始化是否自带及安装步骤正确性

Great questions! Let's break this down clearly for your Expo + ESLint setup:

Expo项目ESLint配置常见疑问解答

1. 使用exp init初始化项目时会自动安装ESLint吗?

简单来说:不会。Expo官方提供的默认模板(比如blanktabsbare-minimum等)在初始化阶段,不会自动集成ESLint及相关依赖,所有的ESLint配置都需要你手动完成。

2. 你尝试的两种安装方式是否适用于Expo项目?

两种方式都完全适配Expo项目,只是操作流程和灵活性不同,下面分别说明:

方式1:手动安装指定依赖

yarn add --dev eslint eslint-config-airbnb eslint-plugin-import eslint-plugin-react eslint-plugin-jsx-a11y babel-eslint

这种手动安装的方式是可行的,Airbnb的规则集是业界广泛认可的规范,完全适配React Native项目。不过需要注意:

  • 安装完成后,你需要手动创建.eslintrc.js(或JSON/YAML格式)配置文件,指定解析器为babel-eslint——因为Expo使用自定义的babel-preset-expo,这个解析器能确保ESLint正确识别Expo项目的语法。
  • 给你一个基础的适配Expo的配置示例:
module.exports = {
  parser: 'babel-eslint',
  extends: ['airbnb', 'plugin:react/recommended'],
  env: {
    browser: true,
    node: true,
    'react-native/react-native': true
  },
  plugins: ['react', 'react-native'],
  rules: {
    // 调整Airbnb规则中不适合React Native的部分
    'react/jsx-filename-extension': [1, { extensions: ['.js', '.jsx'] }],
    'import/no-extraneous-dependencies': ['error', { devDependencies: true }]
  }
};

方式2:通过yarn eslint --init自动初始化

这是ESLint官方推荐的初始化方式,完全适用于Expo项目。在命令行的配置选择环节,你只需要对应Expo的环境做出以下选择(以JavaScript项目为例):

  • 第一个选项:选To check syntax, find problems, and enforce code style(同时覆盖语法检查、问题排查和代码风格约束)
  • 模块系统:选JavaScript modules (import/export)(Expo项目默认使用ES模块)
  • 使用的框架:选React(Expo基于React Native,属于React生态)
  • 是否使用TypeScript:如果是纯JS项目选No,TS项目选Yes
  • 运行环境:勾选BrowserNode(Expo应用在真机/模拟器运行,属于浏览器类环境;Node则用于工具链的打包、构建等环节)
  • 代码风格:可以选择Airbnb(和你方式1的规则集一致),也可以根据偏好选Standard、Google风格,或者自定义
  • 配置文件格式:推荐选JavaScriptJSON,方便后续根据Expo的需求微调

完成选择后,工具会自动安装所有必要的依赖,并生成基础配置文件。你只需要再做少量调整(比如添加react-native插件、确认解析器设置),就能适配Expo项目了。

额外小Tips

如果你想省掉手动调整规则的麻烦,Expo官方提供了专门的ESLint配置包@expo/eslint-config,它已经预设了适配Expo/React Native的规则集合,安装和配置都非常简单:

yarn add --dev eslint @expo/eslint-config

然后在.eslintrc.js中添加:

module.exports = {
  extends: '@expo'
};

内容的提问来源于stack exchange,提问作者Raj

火山引擎 最新活动