es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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”?

Tags:  , , , ,

Answer

  1. Avatar for 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:

    {
      "parserOptions": {
        "ecmaVersion": "latest"
      }
    }
    

    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.

Comments are closed.