如何通过ESLint命令行移除Vue项目中的所有分号?
解决Vue项目用ESLint命令行移除分号的问题
你的问题出在shell解析命令时,把规则里的方括号、逗号等字符当成了独立的文件路径参数,导致ESLint找不到对应文件报错。以下是几种可行的正确命令写法:
1. Bash/Zsh环境推荐写法
用双引号包裹完整的规则定义,避免shell拆分参数:
eslint --no-eslintrc --fix --rule "semi: ['error', 'never']" .
或者指定具体文件类型:
eslint --no-eslintrc --fix --rule "semi: ['error', 'never']" '**/*.{js,vue,ts}'
2. Windows CMD环境写法
CMD对引号的解析和bash略有不同,直接用双引号即可:
eslint --no-eslintrc --fix --rule "semi: ['error','never']" .
3. Windows PowerShell环境写法
PowerShell里需要转义单引号,或者用双引号包裹规则:
# 转义单引号写法 eslint --no-eslintrc --fix --rule 'semi: [''error'', ''never'']' . # 双引号写法 eslint --no-eslintrc --fix --rule "semi: ['error','never']" .
4. JSON格式规则写法(跨shell通用)
把规则写成JSON字符串,这种写法在各种shell环境下都不容易出错:
eslint --no-eslintrc --fix --rule '{"semi": ["error", "never"]}' .
命令参数说明
--no-eslintrc:忽略项目本地的ESLint配置,仅使用命令行指定的规则--fix:让ESLint自动修复符合规则的代码(这里就是移除所有不必要的分号)--rule:指定分号规则,['error', 'never']表示强制不使用分号,ESLint会自动移除多余分号- 最后的
.表示处理当前目录下所有文件,**/*.{js,vue,ts}则只处理指定类型的文件
内容的提问来源于stack exchange,提问作者CBD
相关产品推荐
相关产品推荐

