使用 `--fix` 选项可能可以修复。

64

我正在使用nuxt.js创建一个应用程序,但每次启动应用程序时,都会出现eslint错误,并提示“可能可以使用--fix选项进行修复。”

我执行了命令npm run lint -- --fix,它可以解决问题,但如果我在任何vue文件中做另一个更改,那么同样的错误会再次出现,我必须再次执行该命令。

有任何修复方法的想法吗?


4
你的编辑器在保存时是否进行格式化?它是否以与ESLint强制执行的方式相同进行格式化? - jonrsharpe
不是这样的。应该是 @jonrsharpe 吗? - Ricardo Moreira
1
我问了两个问题,你回答的是哪一个?如果你在问你的编辑器是否应该应用与你的代码检查工具期望相同的格式:是的,否则你就需要不断地重新格式化它。 - jonrsharpe
没错,你说得对。我的回答适用于你们两个的问题。是的,它是针对第一个问题的。谢谢解释。 - Ricardo Moreira
14
找到了这个命令:npm run lint -- --fix - 谢谢! - Liran H
6个回答

46

将以下配置添加到nuxt配置文件中:

build: {
  extend(config, ctx) {
    config.module.rules.push({
      enforce: 'pre',
      test: /\.(js|vue)$/,
      loader: 'eslint-loader',
      exclude: /(node_modules)/,
      options: {
        fix: true
      }
    })
  }
}

重要部分是:

options: {
  fix: true
}

2
你能为第2到5行代码逐行解释一下吗?这对后人可能很有价值。 - ledawg
@ledawg,这种解决方案现在已经不再需要了。 - kissu
3
有趣的是,我在2021年仍然遇到这些问题...... - ledawg

9

nuxt.config.js文件中扩展内置构建

build: {
  extend(config, ctx) {
    config.module.rules.push({
      enforce: "pre",
      test: /\.(js|vue)$/,
      loader: "eslint-loader",
      exclude: /(node_modules)/,
      options: {
        fix: true
      }
    })
  }
}

8
如果任何人在使用云函数时遇到此问题,请尝试以下方法。找到functions文件夹内的package.json文件,替换其中的内容。
"lint": "eslint --ext .js,.ts .",

随着

"lint": "eslint --ext .js,.ts . --fix",

然后再次运行该命令:

firebase deploy --only functions

它应该修复所有可以修复的问题。 如果还有任何错误留下(有时仍然会有1或2个),找到并手动编辑即可,即可解决问题。


3
如果您正在使用VScode,我建议在项目中进行完整的ESlint配置,就像我在这里所解释的那样。
在您的settings.json中拥有此ESlint扩展程序(可通过命令面板访问)
{
  "editor.codeActionsOnSave": {
    "source.fixAll": true, // this one will fix it on save for you
  },
  "eslint.options": {
    "extensions": [
      ".html",
      ".js",
      ".vue",
      ".jsx",
    ]
  },
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact",
    "html",
    "vue",
  ],
}

在一个简单的 `.eslintrc.js` 文件之上,像这样。
module.exports = {
  root: true,
  env: {
    browser: true,
    node: true,
  },
  parserOptions: {
    parser: '@babel/eslint-parser',
    requireConfigFile: false,
  },
  extends: ['@nuxtjs']
}

在设置 UI 中跟随这个步骤,应该能为您提供良好的 DX。

enter image description here


1

我也遇到了同样的问题。

后来我找到了一个解决方案

使用这个命令:-> npm run lint:js -- --fix

希望你的问题能够得到解决。


1
遇到了这个错误,可能可以通过使用“--fix”选项进行修复。,不幸的是,npm run lint -- --fix 没有起作用。运行 npm run format 可以修复错误。
  • lint 用于标记错误
  • format 用于修复错误
"scripts": {
    "lint": "eslint \"**/*.{js,mjs}\" && prettier --check --loglevel warn \"**/*.{js,mjs,json}\" && stylelint \"**/*.scss\"",
    "format": "eslint \"**/*.{js,mjs}\" --fix && prettier --write --loglevel warn \"**/*.{js,mjs,json}\" && stylelint \"**/*.scss\" --fix",
}

出现了 npm ERR! Missing script: "format" 错误。 你的 format 脚本是什么? - Jake_3H

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接