Я установил eslint-config-airbnb, который должен предварительно настроить ESLINT для React:
Наш экспорт по умолчанию содержит все наши правила ESLint, включая ECMAScript 6+ и React. Для этого требуются eslint, eslint-plugin-import, eslint-plugin-react и eslint-plugin-jsx-a11y.
Мое .eslintrc
расширение его конфигурации:
{ "extends": "eslint-config-airbnb",
"env": {
"browser": true,
"node": true,
"mocha": true
},
"rules": {
"new-cap": [2, { "capIsNewExceptions": ["List", "Map", "Set"] }],
"react/no-multi-comp": 0,
"import/default": 0,
"import/no-duplicates": 0,
"import/named": 0,
"import/namespace": 0,
"import/no-unresolved": 0,
"import/no-named-as-default": 2,
"comma-dangle": 0, // not sure why airbnb turned this on. gross!
"indent": [2, 2, {"SwitchCase": 1}],
"no-console": 0,
"no-alert": 0,
"linebreak-style": 0
},
"plugins": [
"react", "import"
],
"settings": {
"import/parser": "babel-eslint",
"import/resolve": {
"moduleDirectory": ["node_modules", "src"]
}
},
"globals": {
"__DEVELOPMENT__": true,
"__CLIENT__": true,
"__SERVER__": true,
"__DISABLE_SSR__": true,
"__DEVTOOLS__": true,
"socket": true,
"webpackIsomorphicTools": true
}
}
К сожалению, я получаю следующую ошибку при линтинге файла .js с кодом React JSX внутри него:
error JSX not allowed in files with extension '.js' react/jsx-filename-extension
Разве eslint-config-airbnb не был настроен на поддержку JSX, как указано?
Что нужно сделать, чтобы удалить эту ошибку?
Для меня это работа. надеюсь помочь вам.
отключить расширение jsx-filename в
.eslintrc
:"rules": {"react / jsx-filename-extension": [0]}
в
webpack.config.js
:разрешить: {расширения: ['.js', '.jsx']},
источник
webpack.config.js
примера.Назовите меня пустышкой, если это вам не подходит
источник
Если вы не хотите изменять расширение файла, вы можете экспортировать функцию, которая возвращает jsx, а затем импортировать и вызвать эту функцию в своем файле js.
а потом
источник
Чтобы изложить ответ Мартина , кажется, что в настоящее время его невозможно использовать
JSX
в React Native. PR был создан, но отозван из-за опасений по поводу фрагментации и неизвестных последствий наличия таких вещейindex.ios.jsx
. Я не уверен, как AirBnb работает с этим и работают ли они, но я использовал в основном тот жеrules
блок, что и Мартин.источник
Следующая документация React :
Следуя руководству по стилю Airbnb :
Вы могли сделать это:
источник