Если вы, как и я, любите, чтобы ваш код React Native не содержал неиспользуемых стилей, пропущенных типов PropTypes и в целом был чистым и организованным, то читайте дальше и узнайте, как настроить ESLint для React Native.
- Установить ESLint глобально
$ npm install eslint --global
- Установить локально
$ npm install --save-dev eslint
- Настройте ESLint
$ eslint --init
Ответьте на вопросы о конфигурации. После выполнения этой команды в корне проекта будет создан следующий файл eslintrc, который будет выглядеть следующим образом.
- Установите следующее глобально и локально
$ npm install eslint-plugin-react --global $ npm install --save-dev eslint-plugin-react
$ npm install eslint-plugin-react-native --global $ npm install --save-dev eslint-plugin-react-native
- Добавить react-native в раздел плагинов
// .eslintrc.json { "plugins": [ "react", "react-native" ] }
- Настройте ESLint для поддержки JSX
// .eslintrc.json { "parserOptions": { "ecmaFeatures": { "jsx": true } } }
- Внесите в белый список все глобальные переменные, похожие на браузер, добавив в конфигурацию response-native / react-native.
// .eslintrc.json { "env": { "browser": true, "react-native/react-native": true, } }
- Наконец, включите любые предпочтительные правила
// .eslintrc.json { "rules": { "react-native/no-unused-styles": 2, "react-native/split-platform-components": 2, "react-native/no-inline-styles": 2, "react-native/no-color-literals": 2, "react-native/no-raw-text": 2, } }
Примечание. На данный момент это рабочая конфигурация ESLint, если вы запустите $ eslint MyAwesomeFile.js
, линтер должен работать. В моем случае я использую стрелочную функцию и новые функции Ecmascript, поэтому я столкнулся с ошибками, связанными с этим.
Чтобы исправить это, установите babel-eslint $ npm install babel-eslint --save-dev
, добавьте babel-eslint в раздел парсера файла конфигурации и plugin: react / recommended для расширения.
Вот как выглядит мой последний файл. eslintrc.json.
{ "parser": "babel-eslint", "parserOptions": { "ecmaFeatures": { "jsx": true } }, "env": { "browser": true, "react-native/react-native": true }, "plugins": ["react", "react-native"], "extends": ["eslint:recommended", "plugin:react/recommended"], "rules": { "react-native/no-unused-styles": 2, "react-native/split-platform-components": 2, "react-native/no-inline-styles": 2, "react-native/no-color-literals": 2, "react-native/no-raw-text": 2, "react-native/sort-styles": [ "error", "asc", { "ignoreClassNames": false, "ignoreStyleProperties": false } ] } }
Теперь не стесняйтесь снова запускать $ eslint MyAwesomeFile.js
из терминала, и все должно работать.
Надеюсь, это поможет вам оставаться более организованным. Если у вас есть какие-либо вопросы, советы, проблемы, не стесняйтесь комментировать или писать в Twitter.
Спасибо, что прочитали, и не забывайте хлопать в ладоши и подписываться на меня!