【问题标题】:ESLint --fix not editing filesESLint --fix 不编辑文件
【发布时间】:2016-10-15 14:36:25
【问题描述】:

我正在尝试使用 ESLint 整理和修复我的代码。 当我使用我的配置文件运行 ESLint 并且没有修复标志时,它运行良好,这就是它的输出。

eslint-c .eslintrc.json ./src/aura/SearchAvailableNumbers

/home/jason/sfa/testproj/src/aura/SearchAvailableNumbers/SearchAvailableNumbersController.js
    8:9   error  Unexpected blank line after variable declarations  newline-after-var
   15:13  error  'hlp' is defined but never used                    no-unused-vars
   50:30  error  'helper' is defined but never used                 no-unused-vars
   55:32  error  'helper' is defined but never used                 no-unused-vars
   59:42  error  'helper' is defined but never used                 no-unused-vars
   69:7   error  Expected { after 'if' condition                    curly
   69:22  error  Expected '===' and instead saw '=='                eqeqeq
   71:22  error  Expected '===' and instead saw '=='                eqeqeq
   76:22  error  Expected '===' and instead saw '=='                eqeqeq
   84:50  error  Object properties must go on a new line            object-property-newline
   89:21  error  Expected '===' and instead saw '=='                eqeqeq
  113:27  error  'appEvent' is already defined                      no-redeclare

/home/jason/sfa/testproj/src/aura/SearchAvailableNumbers/SearchAvailableNumbersHelper.js
  14:17  error  Gratuitous parentheses around expression  no-extra-parens
  23:17  error  'appEvent' is defined but never used      no-unused-vars
  24:28  error  Expected '===' and instead saw '=='       eqeqeq
  28:28  error  Expected '===' and instead saw '=='       eqeqeq
  32:28  error  Expected '===' and instead saw '=='       eqeqeq

所有这些信息都是正确的,并且是必须在代码中修复的问题。 所以我再次运行它,这次是

eslint --fix --debug -c .eslintrc.json ./src/aura/SearchAvailableNumbers

现在输出是

eslint:cli Running on files +0ms
  eslint:config Using command line config .eslintrc.json +70ms
  eslint:config-file Loading JSON config file: /home/jason/sfa/testproj/.eslintrc.json +5ms
  eslint:config-file Loading /usr/local/lib/node_modules/eslint/conf/eslint.json +292ms
  eslint:config-file Loading JSON config file: /usr/local/lib/node_modules/eslint/conf/eslint.json +0ms
  eslint:ignored-paths Looking for ignore file in /home/jason/sfa/testproj +40ms
  eslint:ignored-paths Could not find ignore file in cwd +0ms
  eslint:glob-util Creating list of files to process. +1ms
  eslint:cli-engine Processing /home/jason/sfa/testproj/src/aura/SearchAvailableNumbers/SearchAvailableNumbersController.js +6ms
  eslint:cli-engine Linting /home/jason/sfa/testproj/src/aura/SearchAvailableNumbers/SearchAvailableNumbersController.js +1ms
  eslint:config Constructing config for /home/jason/sfa/testproj/src/aura/SearchAvailableNumbers/SearchAvailableNumbersController.js +0ms
  eslint:config Using .eslintrc and package.json files +0ms
  eslint:config Loading /home/jason/sfa/testproj/.eslintrc.yml +2ms
  eslint:config-file Loading YAML config file: /home/jason/sfa/testproj/.eslintrc.yml +1ms
  eslint:config-file Loading /usr/local/lib/node_modules/eslint/conf/eslint.json +63ms
  eslint:config-file Loading JSON config file: /usr/local/lib/node_modules/eslint/conf/eslint.json +0ms
  eslint:config Using /home/jason/sfa/testproj/.eslintrc.yml +5ms
  eslint:config Merging command line config file +0ms
  eslint:config Merging command line environment settings +0ms
  eslint:config-ops Apply environment settings to config +1ms
  eslint:config-ops Creating config for environment browser +0ms
  eslint:cli-engine Linting code for /home/jason/sfa/testproj/src/aura/SearchAvailableNumbers/SearchAvailableNumbersController.js (pass 1) +3ms
  eslint:cli-engine Generating fixed text for /home/jason/sfa/testproj/src/aura/SearchAvailableNumbers/SearchAvailableNumbersController.js (pass 1) +147ms
  eslint:text-fixer Applying fixes +0ms
  eslint:text-fixer No fixes to apply +0ms
  eslint:cli-engine Processing /home/jason/sfa/testproj/src/aura/SearchAvailableNumbers/SearchAvailableNumbersHelper.js +0ms
  eslint:cli-engine Linting /home/jason/sfa/testproj/src/aura/SearchAvailableNumbers/SearchAvailableNumbersHelper.js +1ms
  eslint:config Constructing config for /home/jason/sfa/testproj/src/aura/SearchAvailableNumbers/SearchAvailableNumbersHelper.js +0ms
  eslint:config Using config from cache +0ms
  eslint:cli-engine Linting code for /home/jason/sfa/testproj/src/aura/SearchAvailableNumbers/SearchAvailableNumbersHelper.js (pass 1) +0ms
  eslint:cli-engine Generating fixed text for /home/jason/sfa/testproj/src/aura/SearchAvailableNumbers/SearchAvailableNumbersHelper.js (pass 1) +56ms
  eslint:text-fixer Applying fixes +0ms
  eslint:text-fixer No fixes to apply +0ms
  eslint:cli-engine Linting complete in: 291ms +1ms
  eslint:cli Fix mode enabled - applying fixes +0ms

/home/jason/sfa/testproj/src/aura/SearchAvailableNumbers/SearchAvailableNumbersController.js
    8:9   error  Unexpected blank line after variable declarations  newline-after-var
   15:13  error  'hlp' is defined but never used                    no-unused-vars
   50:30  error  'helper' is defined but never used                 no-unused-vars
   55:32  error  'helper' is defined but never used                 no-unused-vars
   59:42  error  'helper' is defined but never used                 no-unused-vars
   69:7   error  Expected { after 'if' condition                    curly
   69:22  error  Expected '===' and instead saw '=='                eqeqeq
   71:22  error  Expected '===' and instead saw '=='                eqeqeq
   76:22  error  Expected '===' and instead saw '=='                eqeqeq
   84:50  error  Object properties must go on a new line            object-property-newline
   89:21  error  Expected '===' and instead saw '=='                eqeqeq
  113:27  error  'appEvent' is already defined                      no-redeclare

/home/jason/sfa/testproj/src/aura/SearchAvailableNumbers/SearchAvailableNumbersHelper.js
  14:17  error  Gratuitous parentheses around expression  no-extra-parens
  23:17  error  'appEvent' is defined but never used      no-unused-vars
  24:28  error  Expected '===' and instead saw '=='       eqeqeq
  28:28  error  Expected '===' and instead saw '=='       eqeqeq
  32:28  error  Expected '===' and instead saw '=='       eqeqeq

✖ 17 problems (17 errors, 0 warnings)

当我打开实际代码时,没有任何改变。当我再次运行 linter 时,它会输出相同的内容。

它明确表示“生成固定文本”,但随后输出“没有要应用的修复”。我找不到任何关于修复标志如何在线工作的信息,所以我求助于 stackoverflow。提前致谢。

【问题讨论】:

    标签: javascript lint eslint


    【解决方案1】:

    并非所有 ESLint 规则都是可修复的(实际上大多数规则目前还无法修复)。您可以通过在此页面上查找扳手字形来了解哪些规则可以自动修复:http://eslint.org/docs/rules/

    您遇到错误的规则目前都不是可自动修复的。有些是因为 ESLint 团队还没有找到它们(比如 newline-after-var),有些是因为它很可能会创建与原始代码中预期的不同的逻辑(比如 eqeqeq),有些是因为不可能找出自动修复它的正确方法(如no-unused-varsno-redeclare

    【讨论】:

    • eslint 无法修复的有点蹩脚,例如unsed 参数错误
    猜你喜欢
    • 2018-12-18
    • 2019-06-27
    • 2020-08-27
    • 2020-03-01
    • 2020-08-10
    • 2018-06-06
    • 2019-07-27
    • 2018-01-03
    • 2017-03-09
    相关资源
    最近更新 更多