尝试运行 ESLint 脚本时出现“SyntaxError: Unexpected token ”

Posted

技术标签:

【中文标题】尝试运行 ESLint 脚本时出现“SyntaxError: Unexpected token ”【英文标题】:"SyntaxError: Unexpected token " when trying to run ESLint script尝试运行 ESLint 脚本时出现“SyntaxError: Unexpected token ” 【发布时间】:2021-01-22 14:34:11 【问题描述】:

我在尝试运行 lint 脚本时遇到问题 "lint:fix": "eslint --fix --ext .js,.jsx .”npm run lint:fix

我不断收到这个错误提示,它似乎只是在按照 airbnb 规则更新我的 eslint 部门后才出现的(我使用了npx install-peerdeps --dev eslint-config-airbnb

错误:

/Users/ME/Projects/MYPROJECT/node_modules/eslint/bin/eslint.js:93
         catch 
                ^
SyntaxError: Unexpected token 
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:607:28)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
    at Function.Module.runMain (module.js:684:10)
    at startup (bootstrap_node.js:187:16)
    at bootstrap_node.js:608:3

但是,按预期运行以下工作:npx eslint specific/file.js —fix

这是我的 .eslintrc 文件:

“环境”: “浏览器”:是的, “es2020”:是的 , “扩展”:[“插件:反应/推荐”,“airbnb”,“更漂亮”,“更漂亮/反应”], "解析器": "babel-eslint", “解析器选项”: “ecmaFeatures”: “jsx”:是的 , “ecmaVersion”:2018, “源类型”:“模块” , “插件”:[“反应”], “规则”:

这些是我目前的 eslint 部门:

    "eslint": "7.10.0",
    "eslint-config-airbnb": "18.2.0",
    "eslint-config-prettier": "^2.9.0",
    "eslint-plugin-import": "2.22.1",
    "eslint-plugin-jsx-a11y": "6.3.1",
    "eslint-plugin-react": "7.21.3",
    "eslint-plugin-react-hooks": "4.1.2",
    "eslint-watch": "3.1.2",

任何帮助都会很棒!非常感谢!

【问题讨论】:

【参考方案1】:

Optional catch binding 是在 ES2019 中引入的。

指定的 ESLint 版本应与 supports it(10 或更高版本)的 Node 版本一起使用。

【讨论】:

将我的 ecmaVersion 更改为 2019 似乎仍然存在此问题。任何想法可能是什么问题? 抱歉,正在编辑中。问题是 Node 版本对于这个 ESLint 版本来说太旧了。 没问题!我也在使用节点 v12.18.4 该错误清楚地表明问题出在 Node 本身。如果由于某种原因有多个 Node 版本,则可能会发生这种情况,这可能取决于您的环境。确保此特定命令使用您期望的命令,node -e "console.log(process.execPath,process.version)" && node node_modules/eslint/bin/eslint.js .。或者,一种简单的方法是编辑(然后恢复它)node_modules/eslint/bin/eslint.js 并在那里执行console.log(process.execPath,process.version) 你是对的!这是一个节点问题,而不是一个 eslint 问题! package.json 中 node 中的版本与我在本地运行的版本相隔数年!非常感谢您的帮助!!

以上是关于尝试运行 ESLint 脚本时出现“SyntaxError: Unexpected token ”的主要内容,如果未能解决你的问题,请参考以下文章

尝试 lint Angular 模板时出现 ESLint 错误

尝试部署功能 Firebase 时出现 ESLint 错误

尝试部署 Firebase 功能时出现 ESLint 错误

创建 ESLint CLIEngine 时出现问题

尝试运行可执行 Python 脚本时出现致命的 Python 错误

Telnet:当我在 localhost 上运行 python 脚本时出现“连接被拒绝”