Saya telah menginstal eslint-config-airbnb yang seharusnya mengonfigurasi ESLINT untuk React:
Ekspor default kami berisi semua aturan ESLint kami, termasuk ECMAScript 6+ dan React. Ini membutuhkan eslint, eslint-plugin-import, eslint-plugin-react, dan eslint-plugin-jsx-a11y.
Saya .eslintrc
memperluas konfigurasinya:
{ "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
}
}
Sayangnya, saya mendapatkan error berikut saat melakukan linting pada file .js dengan kode React JSX di dalamnya:
error JSX not allowed in files with extension '.js' react/jsx-filename-extension
Bukankah eslint-config-airbnb yang dikonfigurasi sudah bereaksi untuk mendukung BEJ, seperti yang dinyatakan?
Apa yang harus dilakukan untuk menghilangkan kesalahan itu?
Ini bekerja untuk saya. berharap dapat membantu Anda.
nonaktifkan jsx-filename-extension di
.eslintrc
:"aturan": {"react / jsx-filename-extension": [0]}
di
webpack.config.js
:menyelesaikan: {ekstensi: ['.js', '.jsx']},
sumber
webpack.config.js
contoh.Panggil aku bodoh jika tidak berhasil untukmu
sumber
Jika Anda tidak ingin mengubah ekstensi file, Anda dapat mengekspor fungsi yang mengembalikan jsx, lalu mengimpor dan memanggil fungsi tersebut di file js Anda.
lalu
sumber
Untuk menjelaskan jawaban Martin , sepertinya saat ini tidak mungkin untuk digunakan
JSX
di React Native. Sebuah PR dibuat tetapi dikembalikan karena kekhawatiran tentang fragmentasi dan konsekuensi yang tidak diketahui dari hal-hal seperti ituindex.ios.jsx
. Saya tidak yakin bagaimana AirBnb bekerja di sekitar ini atau apakah mereka melakukannya, tetapi pada dasarnya saya telah menggunakanrules
blok yang sama dengan Martin.sumber
Mengikuti dokumentasi React :
Mengikuti panduan gaya Airbnb :
Anda bisa melakukan ini:
sumber