如何修复 jsx 结束标签上的 linting 错误:“未关闭的正则表达式”?
Posted
技术标签:
【中文标题】如何修复 jsx 结束标签上的 linting 错误:“未关闭的正则表达式”?【英文标题】:How do I fix linting error on jsx closing tags : "unclosed regular expression"? 【发布时间】:2018-01-25 00:24:46 【问题描述】:(PS 这些 SO 问题(标题不准确)均未解决或解决此问题:React Linting: Unclosed Regular Expression、unclosed regular expression、React JSX error : Unclosed regular expression)
例如,这段代码 sn-p 运行良好,但会导致 SublimeLinter 错误:
class Users extends React.Component
render()
var friends = this.props.list.filter(function(user)
return user.friend === true;
);
var nonFriends = this.props.list.filter(function(user)
return !user.friend;
);
return (
<div>
<h1>Friends</h1>
<ul>
...
</ul>
</div>
)
linter 在 </h1>
结束 JSX 标记处犹豫不决,认为它是正则表达式的开始。1-2 of 2 errors: Unclosed regular expression; Unrecoverable syntax error. (42% scanned), 2 lines, 25 characters selected
我在 Sublime Text3 中安装的相关包:SublimeLinter、SublimeLinter-contrib-eslint、JSHint、Babel
编辑: 我刚刚添加了包“JSX”,但这并没有帮助。 我搜索了“sublimeLinter-jsxhint”包,但找不到。
【问题讨论】:
你是用jsx作为文件扩展名的吗?我想知道 Sublime 是不是不明白你在页面上实际上有 JSX 而不是普通的 JS。 【参考方案1】:如果你使用 SublimeLinter-contrib-eslint 和 JSHint,你可能会遇到它们冲突的问题。我会从 Sublime 中删除 JSHint,除非你在构建管道中使用它,然后删除 eslint 包。
【讨论】:
【参考方案2】:扩展在完整的 jsx 文件上运行 jshint,并且 jshint 不支持 jsx 语法及其功能。 我只是使用->(代码->首选项->设置->用户扩展-> JSHint配置-> JSHint:启用复选框->关闭)关闭了JShint
一种解决方案是手动关闭使用/* jshint ignore: start */
和/* jshint ignore: end */
返回html 的函数周围的jshint。
【讨论】:
以上是关于如何修复 jsx 结束标签上的 linting 错误:“未关闭的正则表达式”?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Firebase 函数中使用 --fix 修复 Lint 问题