账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue项目中添加eslint问题(在webstrom中)
    37
    0

    run dev时出现了

    Module build failed: Error: eslint-plugin-html error: It seems that eslint is not loaded. If you think it is a bug, please file a report at https://github.com/BenoitZugmeyer/eslint-plugin-html/
    issues
    

    的错误.这是为什么?

    .eslintrc.js文件中
    module.exports = {
        root: true,
        parser: 'babel-eslint',
        parserOptions: {
            sourceType: 'module'
        },
        env: {
            browser: true,
        },
        // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
        extends: 'standard',
        // required to lint *.vue files
        plugins: [
            'html'
        ],
        // add your custom rules here
        'rules': {
             // 缩进风格
            "indent": ["error", 4],
            // 箭头函数用小括号括起来
            'arrow-parens': 0,
            .....
        }
    }
    
    
    package.json文件中
    {
      "name": "scan-result-web",
      "version": "1.0.0",
      "description": "A Vue.js project",
      "author": "Lb",
      "private": true,
      "scripts": {
        "dev": "node build/dev-server.js",
        "start": "node build/dev-server.js",
        "build": "node build/build.js",
        "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
        "e2e": "node test/e2e/runner.js",
        "test": "npm run unit && npm run e2e",
        "lint": "eslint --ext .js,.vue src"
      },
      "dependencies": {
        "axios": "^0.15.3",
        "element-ui": "^1.2.5",
        "iview": "^2.0.0-rc.5",
        "lodash": "^4.17.4",
        "mint-ui": "^2.2.3",
        "vue": "^2.2.2",
        "vue-resource": "^1.2.1",
        "vue-router": "^2.2.0"
      },
      "devDependencies": {
        "animate.css": "^3.5.2",
        "autoprefixer": "^6.7.2",
        "babel-core": "^6.22.1",
        "babel-eslint": "^7.1.1",
        "babel-loader": "^6.2.10",
        "babel-plugin-component": "^0.9.1",
        "babel-plugin-istanbul": "^3.1.2",
        "babel-plugin-transform-runtime": "^6.22.0",
        "babel-preset-env": "^1.2.1",
        "babel-preset-es2015": "^6.24.1",
        "babel-preset-stage-2": "^6.22.0",
        "babel-register": "^6.22.0",
        "chai": "^3.5.0",
        "chalk": "^1.1.3",
        "chromedriver": "^2.27.2",
        "connect-history-api-fallback": "^1.3.0",
        "copy-webpack-plugin": "^4.0.1",
        "cross-env": "^3.1.4",
        "cross-spawn": "^5.0.1",
        "css-loader": "^0.26.1",
        "eslint": "^4.7.2",
        "eslint-config-standard": "^6.2.1",
        "eslint-friendly-formatter": "^2.0.7",
        "eslint-loader": "^1.9.0",
        "eslint-plugin-html": "^2.0.0",
        "eslint-plugin-promise": "^3.4.0",
        "eslint-plugin-standard": "^2.0.1",
        "eslint-plugin-vue": "^2.1.0",
        "eventsource-polyfill": "^0.9.6",
        "exif-js": "^2.2.1",
        "express": "^4.15.5",
        "extract-text-webpack-plugin": "^2.1.2",
        "file-loader": "^0.10.0",
        "friendly-errors-webpack-plugin": "^1.6.1",
        "function-bind": "^1.1.0",
        "html-webpack-plugin": "^2.30.1",
        "http-proxy-middleware": "^0.17.4",
        "inject-loader": "^2.0.1",
        "karma": "^1.4.1",
        "karma-coverage": "^1.1.1",
        "karma-mocha": "^1.3.0",
        "karma-phantomjs-launcher": "^1.0.2",
        "karma-sinon-chai": "^1.2.4",
        "karma-sourcemap-loader": "^0.3.7",
        "karma-spec-reporter": "0.0.26",
        "karma-webpack": "^2.0.2",
        "lolex": "^1.5.2",
        "mocha": "^3.2.0",
        "nightwatch": "^0.9.12",
        "opn": "^4.0.2",
        "optimize-css-assets-webpack-plugin": "^1.3.0",
        "ora": "^1.1.0",
        "phantomjs-prebuilt": "^2.1.14",
        "rimraf": "^2.6.0",
        "selenium-server": "^3.0.1",
        "semver": "^5.3.0",
        "sinon": "^1.17.7",
        "sinon-chai": "^2.8.0",
        "style-loader": "^0.14.1",
        "url-loader": "^0.5.7",
        "vue-loader": "^11.1.4",
        "vue-style-loader": "^2.0.0",
        "vue-template-compiler": "^2.2.4",
        "webpack": "^2.7.0",
        "webpack-bundle-analyzer": "^2.2.1",
        "webpack-dev-middleware": "^1.12.0",
        "webpack-hot-middleware": "^2.19.1",
        "webpack-merge": "^2.6.1"
      },
      "engines": {
        "node": ">= 4.0.0",
        "npm": ">= 3.0.0"
      },
      "browserslist": [
        "> 1%",
        "last 2 versions",
        "not ie <= 8"
      ]
    }
    
    webpack.base.conf.js文件中
    var path = require('path')
    var utils = require('./utils')
    var config = require('../config')
    var vueLoaderConfig = require('./vue-loader.conf')
    
    function resolve (dir) {
      return path.join(__dirname, '..', dir)
    }
    
    module.exports = {
      entry: {
        app: './src/main.js'
      },
      output: {
        path: config.build.assetsRoot,
        filename: '[name].js',
        publicPath: process.env.NODE_ENV === 'production'
          ? config.build.assetsPublicPath
          : config.dev.assetsPublicPath
      },
      resolve: {
        extensions: ['.js', '.vue', '.json'],
        alias: {
          'vue$': 'vue/dist/vue.esm.js',
          '@': resolve('src'),
        }
      },
      module: {
        rules: [
           {
             test: /\.(js|vue)$/,
             loader: 'eslint-loader',
             enforce: 'pre',
             include: [resolve('src'), resolve('test')],
             options: {
               formatter: require('eslint-friendly-formatter')
             }
           },
          {
            test: /\.vue$/,
            loader: 'vue-loader',
            options: vueLoaderConfig
          },
          {
            test: /\.js$/,
            loader: 'babel-loader',
            include: [resolve('src'), resolve('test')]
          },
          {
            test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
            loader: 'url-loader',
            query: {
              limit: 10000,
              name: utils.assetsPath('img/[name].[hash:7].[ext]')
            }
          },
          {
            test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
            loader: 'url-loader',
            query: {
              limit: 10000,
              name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
            }
          }
        ]
      }
    }
    
    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 行走的大树 普通会员 1楼

      在 Vue 项目中添加 ESLint 问题,你可以按照以下步骤操作:

      1. 安装 ESLint:

      在命令行中,导航到你的 Vue 项目目录并运行以下命令:

      npm install eslint --save-dev

      这将安装 ESLint 和相关插件。

      1. 配置 ESLint:

      在项目的 package.json 文件中,添加 eslinteslint-config-vue 的配置项。确保你的 package.json 文件是最新版本的:

      json { "name": "vue-app", "version": "1.0.0", "scripts": { "start": "vue run" }, "dependencies": { "vue": "^2.5.16" }, "devDependencies": { "eslint": "^6.0.0", "eslint-config-vue": "^4.0.0" } }

      这将添加 ESLint 作为项目的依赖项,并配置了一个基本的 eslint-config-vue 配置。

      1. 编写和运行 ESLint 检查:

      你可以使用以下命令在项目中运行 ESLint 检查:

      npm run eslint

      这将运行 ESLint 代码并给出检查结果。

      1. 查看检查结果:

      在命令行中,导航到项目的 public 目录并运行以下命令:

      npm run eslint --log-level=info

      这将查看 ESLint 检查的结果。

      如果你在 WebStorm 中遇到问题,请确保你已经安装了 ESLint 和相关插件。如果问题仍然存在,你可以尝试检查 WebStorm 的设置,确保它们与你的 Vue 项目配置匹配。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部