use可以使用多个loader数组形式而loader只能写一个loader& H1 n( o" X3 z# B x v4 p' n6 z
5 D0 O; e6 A5 T- p) g$ O
下面主要讲解loader配置: v5 m% O. S6 r% K
@* J$ M' c1 `# N- ], L- V: _$ c
//加载器
+ [+ s' ?$ o* D E1 L/ P4 G' g
module: {
# G0 ^: i9 C' W, I+ w. b9 f2 ]
//规则
* |- l' i- X5 U) C6 q2 Y
// loader的配置
rules: [
! k. M$ `( S2 k {
{
% H3 H. S, s, D2 i Q
test: /\.css$/i,
0 `2 r5 ^; v- l, q: S- D
use: ["style-loader", "css-loader"],
},
//图片性能优化小于10kb进行base64转换优点减少请求数量缺点体积变大
' M, r3 @6 a' n8 \- n, C9 `
filename: "static/image/[hash:10][ext][query]",//打包文件名hash唯一值hash:10哈希值前10位ext后缀 query其他参数
6 E4 E, @7 K/ X8 ]# C( g: w& i
},
, p2 T0 ^; }! l- Z! o. \8 P1 C% C
parser: {
dataUrlCondition: {
// 小于10kb会转换base64
6 t) ?/ n a, w% e6 O
maxSize: 10 * 1024
& |( Y+ u( p: V6 d
}
}
}
]
. ^! g# H d! P/ w) v) K) ]
},
复制代码
Z+ O, b. D, q深入配置文件ESLint 6 S+ I% A8 n: a$ r4 a 5 A2 @0 J0 W" }* G. i- N
由于以上配置仅对模块化语法进行编译对于箭头函数等等一系列还没有自己解析的规则因此我们需要进行配置来对jsx等等进行编译4 U+ h) ]8 \) S1 S) Z9 P3 {
配置文件写法有很多! M! m2 B. z a' w. @. x% E
$ I& d5 M1 O4 t5 r* Q z
.eslintrc.*
.eslintrc
.eslintrc.js
.eslintrc.json
区别在于配置格式写法不一样我们常用js来用
. j! z. b* U. ^5 e# J - M; a. @" _. K8 O
还有一种写法就是直接在package.json中的eslintConfig中写这样就不需要创建文件在原有文件基础上写ESLint会自动查找并读取他们所以以上方式存在一个即可 8 ? f2 Z4 X9 ~, o. n. g; X 6 Q2 S, d4 b* o
//以.eslintrc.js配置文件为例
module.exports={
# G9 s: t3 t( Q# k. C0 S
//解析选项
perserOptions:{
ecmaVersion:6,//ES语法版本
sourceType:"module",//ES模块化
1 k3 x1 V6 F {4 N! ^
ecmaFeatures:{//Es其他特性
jsx:true//如果是React项目就需要开启jsx语法
}
},
//具体检查规则
}7 o4 d7 [" c' K* E& [, i# @
rules:{},
, z3 n& e8 @$ k& r) n; p
//继承其他规则
extends:[]
}
复制代码
$ r/ [9 K2 f1 d3 J( weslint官方文档 6 t/ ^9 B& m9 {6 W 0 v6 ]0 E. ^/ s) t* q' E
rules具体规则 $ @6 `2 _! O5 Z9 L