This package provides Expensify's .eslintrc as an extensible shared config. Most of our rules are based on Airbnb's style guide.
- You only need to make a PR with the changes. There is no need to bump the version in
package.jsonfile in your PR. A github action will automatically bump the version and publish the package to npm after PR is merged.
After you have submitted a PR,
- Get the full commitID of the last commit in your PR, and run
npm install git+https://github.com/Expensify/eslint-config-expensify.git#COMMIT_IDin the repo against which you want to test those changes. - This should update the resolved path of
eslint-config-expensifyinpackage-lock.jsonfile, and ensures the repo is referencing to the correct local version of the eslint config. - Now, you can run
npm run lintor perform any other tests you want in that repo.
- A GitHub action will automatically bump the version and publish the package to npm after PR is merged.
- Go into the App, Web-Expensify and Web-Secure repos and run
npm install eslint-config-expensify@latest. This should update thepackage.jsonandpackage-lock.jsonfile, and you can submit a PR with those changes.
Note as of now we have no way of testing these PRs without a separate App, Web or Web-Secure PR
We export two ESLint configurations for your usage.
Our default export contains all of our ESLint rules, including ECMAScript 6+ and React. It requires eslint, eslint-plugin-import, eslint-plugin-react, and eslint-plugin-jsx-a11y.
Just add extends: 'expensify' to the .eslintrc file in the root directory of your project.
Just add extends: 'expensify/legacy' to the .eslintrc file in the root directory of your project.
Feel free to also check out our Javascript style guide, our general language-agnostic coding standards, and the ESlint config docs for more information.