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.
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
:Este código aumenta la
ecmaVersion
a2021
para que ESLint esté al tanto de las últimas actualizaciones de sintaxis. Además, desactiva la reglano-dupe-class-members
que estaba señalando la sintaxisstatic 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.