loader加载器

2019-05-09  本文已影响0人  小丘啦啦啦

一、说明

二、处理 css样式表
1、创建了.css文件,如果直接在html中link标签引入,则会造成二次请求,不推荐。
此时,在main.js项目JS入口文件中导入CSS样式表。

import './css/index.css' 

2、安装
项目根路径,npm i style-loader css-loader -D 本地安装。处理css文件需要安装 style-loader 和 css-loader 。
3、增加匹配规则

module.exports = {
    module:{   //此节点用于配置所有第三方模块加载器
        rules:[   //所有第三方模块的匹配规则
            {
                test:/\.css$/,   //正则
                use:['style-loader','css-loader']   //匹配到则使用这些第三方loader
            }
        ]
    }
}

三、处理less文件
1、在main.js项目JS入口文件中导入less文件。

import './css/index.less'

2、安装
npm i less-loader -D本地安装。此加载器需要依赖less插件npm i less -D(内部依赖,不需要定义到配置文件)。
3、增加匹配规则
less也属于样式,也需要经过style-loader 和 css-loader处理。

module.exports = {
    module:{   //此节点用于配置所有第三方模块加载器
        rules:[   //所有第三方模块的匹配规则
            {
                test:/\.less$/,  
                use:['style-loader','css-loader','less-loader']  
            }
        ]
    }
}

四、处理scss文件
1、在main.js项目JS入口文件中导入less文件。

import './css/index.scss'

2、安装
npm i sass-loader -D本地安装。此加载器需要依赖node-sass,cnpm i node-sass -D(常用cnpm安装,npm很多时候失败,内部依赖,不需要规则配置,npm uninstall node-sass出错先删除)。
3、增加匹配规则
sass也属于样式,也需要经过style-loader 和 css-loader处理。

module.exports = {
    module:{   
        rules:[   
            {
                 test:/\.scss$/,  
                use:['style-loader','css-loader','sass-loader'] 
            }
        ]
    }
}

五、处理CSS中的url地址(图片、字体库)
1、css中引入了图片url;npm i boostrap -S安装bootstrap的包(根据提示安装其他依赖),4.x版本icon文件分离出去所以还需要下载open-iconicnpm i https://github.com/iconic/open-iconic.git -D,main.js入口文件引入bootstrap.css(4+还需要引入icon),编译会显示无法处理.ttf等字体文件。

<span class="oi oi-account-login"></span>
//通过路径形式引用node_modules中相关文件,可以省略路径前面node_modules这一层目录
//直接写包的名称,后面跟上具体的文件路径
import 'bootstrap/dist/css/bootstrap.css'
import 'open-iconic/font/css/open-iconic-bootstrap.css'

2、安装
npm i url-loader -D本地安装。此加载器需要依赖file-loader,npm i file-loader -D(内部依赖,不需要规则配置)。
3、增加匹配规则

module.exports = {
    module:{   
        rules:[   
           {
               test:/\.(jpg|png|gif|bmp|jpeg)$/,   //匹配图片 
                use:'url-loader'    

            },
           {
                test:/\.(ttf|eot|svg|woff|woff2)$/,   //字体文件  
                use:'url-loader'
            }
        ]
    }
}

处理图片和字体引用url虽然用同样的loader,为了区分,匹配规则最好不要混写。
4、编译打包的图片url是base64格式的字符串。



不需要图片的二次请求,适合小的图片。
引用loader时可传参进行控制(格式和url传参一样,只是参数名称是固定的)。

rules:[   
  {
         test:/\.(jpg|png|gif|bmp|jpeg)$/,  
         use:'url-loader?limit=39083'  
   }
]

limit限制参数,以byte为单位。大于图片本身大小,会转为base64字符串;小于等于,不会被转base64。


上一篇 下一篇

猜你喜欢

热点阅读