您的位置:首页 > Web前端 > React

webpack+react+eslint

2017-03-19 16:13 274 查看
eslint目标是以可扩展,每条规则独立,不内置编码风格为理念的lint工具,用户可以定制自己的规则做成公共包

eslint主要有以下特点:

1)默认规则包含所有的jslint,jshint中存在的规则易迁移

2)规则可配置性高,可设置警告,错误两个error等级,也可以直接禁用

3)包含代码风格检测的规则

4)支持插件扩展,自定义规则

针对react开发者,eslint已经可以很好的支持jsx语法了。

我们从react应用中怎么配置开始说起,还是基于上一个博客的demo(http://blog.csdn.net/jasonzds/article/details/63326342)项目说起,首先npm安装必要的包

npm i eslint eslint-loader --save-dev

接着安装3个第三方配制好的插件,在这里使用airbnb开发配置合集eslint-config-airbnb这个配置有3个插件

npm i eslint-config-airbnb --save-dev

npm i eslint-plugin-import eslint-plugin-react eslint-plugin-jsx-a11y --save-dev

5)配置.eslintrc文件

{
    "extends":"airbnb",
    "rules":{
        "comma-dangle":["error","never"]
    }
}

意思就是直接继承airbnb的配置规则,同时也可以写入自己的特定规则,后面的内容会覆盖默认的规则,

把eslint加入web pack

preloaders: [
            {
                test: /\.js?$/,
                loaders: ['eslint'],
                include: APP_PATH
            }
        ],

最后的web pack.config.js文件是

var path = require('path');
var webpack = require('webpack');
var HtmlwebpackPlugin = require('html-webpack-plugin');
var ROOT_PATH = path.resolve(__dirname);
var BUILD_PATH = path.resolve(ROOT_PATH, 'build');
var APP_PATH = path.resolve(ROOT_PATH, 'app');

module.exports = {
    entry: {
        app: path.resolve(APP_PATH, 'app.js')
    },
    output: {
        path: BUILD_PATH,
        filename: '[name].bundle.js'
    },
    resolve: {
        extensions: ['', '.js', '.jsx'],
        root: APP_PATH
    },
    module: {
        preloaders: [
            {
                test: /\.js?$/,
                loaders: ['eslint'],
                include: APP_PATH
            }
        ],
        loaders: [
            {
                test: /\.js?$/,
                loaders: ['babel-loader'],
                include: APP_PATH
            }
        ]
    },
    plugins: [
        new HtmlwebpackPlugin({
            title: 'demo',
            filename: 'index.html'
        }),
    ]
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: