Shared ESLint configs for Node, Web, and universal Expo projects.
yarn add --dev eslint-config-universe
You will also need to install
yarn add --dev eslint prettier @typescript-eslint/eslint-plugin @typescript-eslint/parser
Import this config into your own ESLint configuration using the
extends option. ESLint checks both package.json and .eslintrc.* files for its configuration:
"eslintConfig":// Choose from universe/native, universe/node, universe/web"extends": "universe"
moduleexports =extends: 'universe';
If you would like to customize the Prettier settings, create a file named
.prettierrc in your project directory. An example of Prettier configuration file:
Support for Different Platforms
There are several configs for different platforms. They are:
universe/native: the config for React Native projects, including Expo projects, with support for React and JSX
universe/web: the config for code that runs in web browsers, with support for React and JSX
universe/node: the config for code that runs in Node
For an Expo project, your configuration might look like this:
You also can extend multiple configs, which is useful for projects that span several platforms:
"eslintConfig":"extends": "universe/node" "universe/web"
This config is designed to mark severe problems (ex: syntax errors) as errors and stylistic issues as warnings. This lets your team apply policies like, "make sure a commit has no errors but ignore warnings if the commit didn't introduce them."
It's also designed to be a more lenient config for teams who are stronger at decision-making and have a culture of osmotically learning coding guidelines and benefit more from flexibility than rigid rules.