Linting & Formatting

ESLint catches bugs; Prettier owns formatting. We keep them from fighting by running Prettier through ESLint and putting eslint-config-prettier last.

// eslint.config.js  (flat config)
const expo = require("eslint-config-expo/flat");

module.exports = [
  ...expo,
  { rules: { "prettier/prettier": "warn" } },
];
// .prettierrc.json
{
  "semi": true,
  "singleQuote": false,
  "trailingComma": "all",
  "printWidth": 100,
  "tabWidth": 2,
  "plugins": ["prettier-plugin-tailwindcss"]
}

prettier-plugin-tailwindcss sorts your className utilities into a canonical order automatically.

Commands

pnpm lint            # expo lint
pnpm format          # prettier --write .
pnpm format:check    # prettier --check .   (this is what CI runs)