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'
}),
]
}
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'
}),
]
}
相关文章推荐
- Vue系列之WebPack与Eslint
- vue+webpack中配置ESLint
- 轻松入门React和Webpack
- [React + webpack] hjs-webpack
- webpack react 打出独立的css文件
- 在现有 server 中集成 webpack + react 热加载
- 整理的react相关的一些学习地址,包括 react-router、redux、webpack、flux
- react-webpack 学习笔记~~第一步~环境
- node.js学习之webpack打包react最简单用法
- 入门React和Webpack
- webpack +Reactjs +babel 加载器配置
- React 【ES2015】+ Babel + Gulp + Webpack
- 5分钟内使用React、Webpack与ES6构建应用
- 学习React-Native(一):学习React,使用模块加载器webpack
- webpack 打包一个简单react组件
- 一个webpack,react,less,es6的DEMO
- [React] Linting React JSX with ESLint (in ES6)
- webpack+react问题汇总
- 深入浅出React(二):React开发神器Webpack
- react+babel+webpack初试