vue-cli3脚手架下Eslint的配置报错问题

在Eslint严格模式下会对代码进行一定的规范,一下是不规范的报错。在这里插入图片描述

解决方案

直接关闭eslintrc 配置一个vue.config.js

module.exports = {
    lintOnSave: false
  }

在目录.eslintrc.js下配置常用的规范

	module.exports = {
  root: true,
  env: {
    node: true
  },
  // extends: ["plugin:vue/essential", "@vue/prettier"],//这里面的@vue/prettier去掉
  extends: ["plugin:vue/essential"],
  rules: {
    "no-console": process.env.NODE_ENV === "production" ? "error" : "off",
    "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off",
    "space-before-function-paren":0
  },
  parserOptions: {
    // parser: "babel-eslint"
  }

给项目添加.prettierrc

prettierrc用于格式化代码 shift+alt+f 在格式化代码会将配置的规则格式化转换

{
    "semi": false,
    "singleQuote": true
}

如果是用vscode格式化,Vue文件会自动加分号问题解决如下

打开 文件–>首选项–>设置 (快捷键ctrl+,)

在这里插入图片描述

在json中添加以下配置,就不会有分号啦
"vetur.format.defaultFormatterOptions": {
        "prettier": {
            "semi": false,
            "singleQuote": true
        }
    }
如果需要在方法括号之间加空格,还需加入以下配置
"javascript.format.insertSpaceBeforeFunctionParenthesis": true,
"vetur.format.defaultFormatter.js": "vscode-typescript"
{
    "[json]": {
        
        "editor.quickSuggestions": {
            "strings": true
        },
        "editor.suggest.insertMode": "replace"
    },
    "vetur.format.defaultFormatterOptions": {
        "prettier": {
            "semi": false,
            "singleQuote": true
        }
    },
    "javascript.format.insertSpaceBeforeFunctionParenthesis": true,
     "vetur.format.defaultFormatter.js": "vscode-typescript"
}
<think>嗯,用户遇到了npm安装时的依赖冲突问题,具体是关于@vue/eslint-config-standard和eslint-plugin-vue的版本不兼容。我需要先理解错误信息。 首先,用户运行了npm install,然后报错ERESOLVE无法解析依赖。错误信息显示@vue/eslint-config-standard@6.1.0需要eslint-plugin-vue的^7.0.0版本,但当前项目里安装的是8.7.1。这是因为eslint-plugin-vue的版本过高,导致不满足peer dependency的要求。 接下来,我需要考虑可能的解决方案。通常这类问题可以通过几种方式解决:更新有冲突的包版本,使用--force或--legacy-peer-deps选项,或者手动调整依赖版本。 用户的项目中,根项目指定了eslint-plugin-vue的^8.0.3,而@vue/eslint-config-standard@6.1.0要求的是^7.0.0。所以可能的解决方法之一是降低eslint-plugin-vue的版本到7.x,或者升级@vue/eslint-config-standard到支持eslint-plugin-vue 8.x的版本。 需要检查@vue/eslint-config-standard的最新版本是否支持eslint-plugin-vue 8.x。假设最新版本已经支持,那么更新@vue/eslint-config-standard可能更合适。如果用户的项目允许,这可能是一个更好的长期解决方案。 另外,用户可能因为项目模板或原有配置锁定了某些包的版本,导致无法自动升级。这时候需要手动调整package.json中的版本号,然后重新安装。 如果用户不想更改版本,临时解决方案是使用npm install --legacy-peer-deps,这会忽略peer依赖冲突,但可能有风险。或者使用--force强制安装,但同样可能导致依赖问题。 总结起来,步骤应该是:首先尝试更新有冲突的包,其次调整依赖版本,最后才考虑使用legacy或force选项。同时,需要提醒用户检查项目兼容性,确保更改后不会引入其他问题。</think>你遇到的错误是由于 npm 的依赖版本冲突导致的。以下是逐步解决方案: --- ### **错误原因分析** 1. **冲突焦点**: - `@vue/eslint-config-standard@6.1.0` 要求 `eslint-plugin-vue@^7.0.0` - 但你的项目中已安装 `eslint-plugin-vue@8.7.1`(不兼容) 2. **依赖关系冲突**: - 你的项目根目录要求 `eslint-plugin-vue@^8.0.3` -VueESLint 配置需要旧版 `eslint-plugin-vue@7.x` --- ### **解决方案(任选其一)** #### **方法 1:升级 `@vue/eslint-config-standard`** 检查其最新版本是否支持 `eslint-plugin-vue@8.x`: ```bash npm view @vue/eslint-config-standard versions --json ``` 如果最新版(如 `^7.x`)支持,则修改 `package.json`: ```json { "devDependencies": { "@vue/eslint-config-standard": "^7.0.0", "eslint-plugin-vue": "^8.0.3" } } ``` 然后运行: ```bash npm install ``` --- #### **方法 2:降级 `eslint-plugin-vue`** 修改 `package.json` 明确指定兼容版本: ```json { "devDependencies": { "@vue/eslint-config-standard": "^6.1.0", "eslint-plugin-vue": "^7.20.0" } } ``` 删除 `node_modules` 和 `package-lock.json` 后重新安装: ```bash rm -rf node_modules package-lock.json npm install ``` --- #### **方法 3:强制安装(临时修复)** 使用 `--legacy-peer-deps` 忽略 peer 依赖冲突: ```bash npm install --legacy-peer-deps ``` 或强制覆盖依赖: ```bash npm install --force ``` *注意:此方法可能导致隐藏的兼容性问题。* --- ### **验证修复** 安装完成后运行: ```bash npm ls eslint-plugin-vue ``` 检查输出中版本是否满足 `@vue/eslint-config-standard` 的要求。 --- ### **附加建议** 1. **检查 Vue 版本兼容性** 确保所有 Vue 生态工具(如 `vue-cli`、`eslint-config`)的版本与你的 Vue 主版本匹配。 2. **更新项目模板** 如果项目基于旧版 Vue 脚手架创建,考虑用 `vue upgrade` 更新配置。 通过以上步骤,应能解决依赖冲突问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值