为coding事业奉献头发

为coding事业奉献头发

npm i eslint eslint-webpack-plugin eslint-config-airbnb-base eslint-plugin-import -D

1、eslint 这个必须安装的 

2、eslint-webpack-plugin 用于替代eslint-loader(即将废弃)

3、eslint-config-airbnb-base  支持es6+的语法规范 就不用每一项都去配置了 (为什么使用这个 点击查看

4、eslint-plugin-import 用于在webpack.json中读取eslintConfig配置项

5eslint-import-resolver-webpack(如果在webpack.config.js中配置了alias 并且在import时使用了别名需要安装这个)点击查看配置项

6、需要自定义eslint规则 点击查看

// webpack.config.js
const ESLintPlugin = require('eslint-webpack-plugin');

module.exports = {
    mode: "development",
    entry: './src/index.js',
    // devtool: 'inline-source-map',
    devServer: {
        contentBase: './dist',
        compress: true,
        open: false
    },
    output: {
        publicPath: '/',
        // 指定打包后输出的文件名
        filename: 'js/app.[contenthash:10].js',
        // 指定打包后输出的目录
        path: path.resolve(__dirname, 'dist')
    },
    resolve: {
        alias: {
            # !!!!!!注意如果配置了此处 要安装步骤5的插件!!!!!!!! #
            "@": path.resolve(__dirname, 'src')
        }
    },
    module: {
        rules: [

        ]
    },
    plugins: [
        #使用 配置项都可以在eslint-webpack-plugin的github上找到
        new ESLintPlugin({
            fix: true,
            extensions: ['js', 'json', 'coffee'],
            exclude: '/node_modules/'
        }),
    ]
};
// package.json
"eslintConfig": {
    "extends": "airbnb-base",
    #!!!!如果没使用alias下面的不用配置!!!!!
    "settings": {
      "import/resolver": {
        "webpack": {
          "config": "webpack.config.js"
        }
      }
    }
  }
04-11 07:05