尝试运行 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 错误