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.

ionic serve se queja de un JavaScript válido “Error de análisis: Token inesperado =”.

Tengo un modelo de Vuex-ORM llamado Profile.js

import { Model } from '@vuex-orm/core'

export default class Profile extends Model {
    static entity = 'profile'

    static fields () {
        return {
            id: this.uid(),
            // etc...
        }
    }
}

Cuando ejecuto ionic serve obtengo la siguiente salida:

Build finished at 14:20:05 by 0.000s
[INFO] Se abrió una ventana del navegador en http://localhost:4200!
ERROR in 
[vue-cli-service] /home/user/IonicProjects/ionic/iloveu/src/store/models/Profile.js
[vue-cli-service]   4:19  error  Parsing error: Unexpected token =
[vue-cli-service] 
[vue-cli-service] ✖ 1 problema (1 error, 0 advertencias)
[vue-cli-service] 
[vue-cli-service] La compilación de webpack se realizó con 1 error

Entonces se queja de esta línea

static entity = 'profile'

que es perfectamente válido en JavaScript o ECMAScript.

¿Qué puedo hacer para que este código válido no se marque como erróneo?

Mi archivo .eslintrc

module.exports = {
  root: true,
  env: {
    node: true
  },
  'extends': [
    'plugin:vue/vue3-essential',
    'prettier'
  ],
  parserOptions: {
    ecmaVersion: 2020
  },
  rules: {
    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    'vue/no-deprecated-slot-attribute': 'off'
  },
  overrides: [
    {
      files: [
        '**/__tests__/*.{j,t}s?(x)',
        '**/tests/unit/**/*.spec.{j,t}s?(x)'
      ],
      env: {
        jest: true
      }
    }
  ]
}

Referencia a la documentación de vuex-orm.

Tags:  

Answer

  1. Avatar for davy.ai

    Para solucionar este problema, puedes agregar una configuración para que ESLint reconozca la propiedad static entity como una sintaxis válida, agregando la siguiente regla a tu archivo .eslintrc:

    "parserOptions": {
        "ecmaVersion": 2021
    },
    "rules": {
        // otras reglas aquí
        "no-dupe-class-members": "off"
    }
    

    Este código aumenta la ecmaVersion a 2021 para que ESLint esté al tanto de las últimas actualizaciones de sintaxis. Además, desactiva la regla no-dupe-class-members que estaba señalando la sintaxis static entity como un error.

    Ten en cuenta que esta regla también podría señalar como error otras sintaxis de miembro de clase perfectamente válidas, así que úsala con precaución y asegúrate de probar a fondo tu aplicación después de realizar este cambio.

Comments are closed.