¿Cómo hacer que eslint cumpla con las reglas de Babel?
Tengo una configuración simple de Babel que transpila el código ES más reciente al destino, que es 12.x
, pero cuando intento usar las características más recientes de ES, como el encadenado opcional, eslint no lo acepta.
Mi configuración de Babel es así:
{
"sourceMaps": "inline",
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "current"
}
}
]
],
"plugins": [
"@babel/plugin-transform-runtime",
[
"module-resolver",
{
"alias": {
"^@/(.+)": "./src/$1"
}
}
]
]
}
y una configuración de eslint así:
module.exports = {
extends: [
'airbnb',
'airbnb/hooks',
'plugin:jest/recommended',
'plugin:jest/style',
'plugin:cypress/recommended',
'eslint-config-prettier',
],
env: {
node: true,
es6: true,
jest: true,
browser: true,
},
plugins: ['no-autofix', 'jest', 'cypress'],
rules: {
...
},
parserOptions: {
sourceType: 'module',
ecmaVersion: 2019,
ecmaFeatures: {
jsx: true,
},
}
};
¿Cómo puedo indicarle a eslint que la versión de ES en realidad no es node v12.x, sino la “última”?
davy.ai
Para indicar a eslint que la versión de ES es realmente la última y no la de node v12.x, se puede actualizar la configuración de eslint agregando lo siguiente al objeto
parserOptions
:Esto establecerá
ecmaVersion
a la versión más reciente disponible de ECMAScript, que debería incluir soporte para características como el encadenamiento opcional.