- {
- test: /\.(jpg|png|gif)/,
- // url-loader默认使用es6模块化解析
- loader: "url-loader",
- options: {
- // 图片大于8kb,就会被base64处理
- limit: 8 * 1024,
- esModule: false, // 关不es6模块化解析
- encoding: true, // 默认为true, 是否使用默认编码base64,可以["utf8","utf16le","latin1","base64","hex","ascii","binary","ucs2"]
- generator: '', // 类型:{Function},默认值:() => type/subtype;encoding,base64_data,可以自定义数据编码。
- fallback: 'file-loader', //指定当目标文件的大小超过限制时要使用的备用加载程序
- //[hash:10]取图片的hash的前10位
- //[ext]取文件原来扩展名
- name: '[hash:10].[ext]'
- }
- },
file-loader
options配置对象中,我们可以配置图片打包好之后的名称,存放的位置等。
- .loader('file-loader')
- .options({
- name: '[name].[contenthash].[ext]',
- outputPath: 'static/img'
- })
简化后
- .loader('file-loader')
- .options({
- name: 'static/img/[name].[contenthash].[ext]'
- })
3.sass-loader
sass-loader的作用就是将该css文件翻译成纯css语法文件,以便后续打包处理,需要注意的是,在我们需要使用sass-loader时,在安装sass-loader时还需要安装node-sass。
4.css-loader
我们的css打包文件中可能会引入其它的css文件,而css-loader的作用就相当于把这些相互依赖的css文件合并成一个css文件。
- {
- test: /.css$/,
- loader: 'css-loader',
- exclude: /(node_modules|bower_components)/
- }
5.style-loader
我们需要打包的css文件在经过sass-loader的翻译,css-loader的合并之后,style-loader的作用就是把合并后的css文件挂载到页面的head中来渲染出页面的样式。
6.postcss-loader
postcss-loader是一个辅助性loader,它是针对css3中新增样式属性而存在的,它可以将css样式文件中的css3样式属性在挂载到页面上时,自动在新样式属性前添加上像-webkit-,-moz-这样的厂商前缀,但是它的使用还需要一个autoprefixer插件配合使用,我们配置postcss-loader的方式跟配置其它loader的方式一样,而引入autoprefixer插件则需要在postcss.config.js文件中引入:
- {
- test: /.css$/,
- use: ['style-loader','css-loader','postcss-loader'], //从右向左执行
- }
- 官网的写法
- rules: [
- {
- test: /\.css$/,
- use: [
- // [style-loader](/loaders/style-loader)
- { loader: 'style-loader' },
- // [css-loader](/loaders/css-loader)
- {
- loader: 'css-loader',
- options: {
- modules: true
- }
- },
- // [sass-loader](/loaders/sass-loader)
- { loader: 'sass-loader' }
- ]
- }
- ]
7.svg-sprite-loader
将svg图片以雪碧图的方式在项目中加载