Sublime中jsxhint+jshint检测React组件报错:未公开正则表达式
解决Sublime 3中jsxhint与jshint冲突导致JSX标签报错的问题
嘿,我来帮你搞定这个问题~首先得理清根源:jshint本身不支持JSX语法,当它碰到你.js文件里的React标签(比如<Route/>这类自闭合标签的斜杠位置),会把这些当成无效代码,直接报错并停止检测;而jsxhint是jshint专门针对JSX改造的版本,完全兼容JSX语法,所以根本不需要同时启用两个工具,直接用jsxhint替代jshint就能解决问题。下面是具体操作步骤:
1. 全局安装jsxhint
打开终端,执行npm全局安装命令:
npm install -g jsxhint
2. 在Sublime中配置jsxhint
假设你已经用Package Control装了SublimeLinter(代码检查的核心插件),接下来:
- 安装
SublimeLinter-jsxhint插件(通过Package Control搜索安装即可) - 卸载或禁用
SublimeLinter-jshint插件,避免两个工具冲突 - 让Sublime把.js文件识别为JSX语法:
打开你的React项目中的任意.js文件,点击Sublime右下角的语法标识(比如显示“JavaScript”),选择Open all with current extension as...→JavaScript (JSX)。也可以直接在用户设置里添加配置:{ "extensions": { ".js": ["JavaScript (JSX)"] } }
3. 验证效果
重启Sublime后打开你的项目文件,之前</Route>标签位置的jshint报错应该就消失了,jsxhint会正常检测你的JSX+JavaScript代码。
额外小提示
如果你的React项目版本比较新,jsxhint其实已经停止维护了,更推荐用ESLint配合babel-eslint和eslint-plugin-react来做代码检查,兼容性和功能都更强,但如果就想用jsxhint的话,上面的步骤完全能解决你的问题。
内容的提问来源于stack exchange,提问作者blamb
相关产品推荐
相关产品推荐

