Grunt:grunt-eslint任务无法启动问题求助
问题根源:任务名称递归冲突
哦,我一眼就发现了导致任务停滞的核心问题——你在Grunt配置里踩了一个典型的任务命名递归坑!
具体问题分析
你手动注册了一个名为eslint的自定义任务,而这个任务的执行列表里又包含了eslint(也就是它自己):
grunt.registerTask('eslint', [ 'eslint', ]);
当你执行grunt eslint命令时,Grunt会触发你自定义的这个任务,而这个任务又会去调用名为eslint的任务——也就是它本身,这就形成了无限递归循环。任务会一直自我调用,永远无法结束,自然就会出现看似启动却长期停滞的现象。
修复方案(二选一即可)
方案1:修改自定义任务名称
把你注册的任务改成别的名字,比如lint,避免和grunt-eslint提供的任务重名:
// 删掉原来的重复注册代码,替换成这个 grunt.registerTask('lint', [ 'eslint', ]);
之后执行grunt lint就能正常运行ESLint检查了。
方案2:直接使用默认任务
其实grunt-eslint插件已经自动为你注册了eslint任务,你完全不需要手动再注册一遍。直接删掉这行多余的代码即可:
// 删掉这行重复注册的代码 grunt.registerTask('eslint', [ 'eslint', ]);
之后执行grunt eslint就能正常触发检查。
额外的小确认(非当前主因)
- 可以确认下
src/js/*.js路径下确实存在JavaScript文件,如果路径错误,ESLint会检查0个文件并快速结束,但不会导致长期停滞,所以这不是本次问题的原因。 - 你的
.eslintrc.json配置语法是合法的,没有语法错误,这部分无需调整。
内容的提问来源于stack exchange,提问作者Kelsner
相关产品推荐
相关产品推荐

