Estoy desarrollando una aplicación de muestra usando Vue 3 y Typescript. Específicamente, estoy usando la nueva opción de configuración de Vue v3.2 en la sección de Vue SFC. Los documentos de Vue me aconsejan que agregue "vue/setup-compiler-macros" a la sección env del archivo eslintrc.js que estaba funcionando. Pero ahora estoy recibiendo un error.
Syntax Error: Error: .eslintrc.js: Environment key "vue/setup-compiler-macros" is unknown at Array.forEach (<anonymous>)por un tiempo, esto parecía desaparecer si reiniciaba VS Code (no es una gran solución, lo admito), pero ahora incluso esto no funciona. El error ocurre cuando guardo un archivo y se compila el proyecto. Parece que estoy usando la extensión VS Code - ESLint v2.2.2.
eslintrc.js:
module.exports = { root: true, env: { 'vue/setup-compiler-macros': true, node: true, }, extends: [ 'plugin:vue/vue3-essential', 'eslint:recommended', '@vue/typescript/recommended', ], parserOptions: { ecmaVersion: 2020, }, rules: { 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', }, }Cualquier idea sería muy apreciada.
Tengo el mismo problema, resuelto por config
globals: { defineProps: "readonly", defineEmits: "readonly" } la guía oficial está aquí, no sé el 'vue/setup-compiler-macros': true, ¿por qué no funciona?
Puede verificar esta respuesta que me ayudó a resolver este problema correctamente.
Básicamente necesitas:
babel-eslint ejecutando npm uni -D babel-eslint en su terminal.@babel/eslint-parser ejecutando npm i -D @babel/eslint-parser en su terminal.env en su configuración de ESLint (podría estar dentro de .eslintrc.js , .eslintrc.json o package.json ) con lo siguiente: env: { node: true, 'vue/setup-compiler-macros': true, },parserOptions en su configuración de ESLint con lo siguiente: parserOptions: { parser: '@babel/eslint-parser', ecmaVersion: 2018, requireConfigFile: false, // This will prevent Babel from looking for a config file you possibly don't have or need. },parser fuera de parserOptions , simplemente puede eliminarla para evitar conflictos.Debe actualizar eslint-plugin-vue a la versión 8 que lo agregó de acuerdo con sus notas de lanzamiento. Consulte también https://github.com/vuejs/eslint-plugin-vue/pull/1685