说明
玩转webpack
课程学习笔记。
使用url-loader
1、安装依赖
npm i url-loader -D
url-loader 也可以用于处理图片和字体。(可以设置较小资源自动 base64
)
2、search.js
引入一张小于10k
的图片测试一下,logo.png
的大小为3.37kb
。
import React from 'react'; import ReactDOM from 'react-dom'; import './search.less'; import logo from './images/logo.png'; console.log(logo); class Search extends React.Component { render() { return <div className="search-text"> 凯小默的博客 <img src={ logo } /> </div> } } ReactDOM.render( <Search/>, document.getElementById('root') )
3、webpack.config.js配置
把之前的file-loader
改为url-loader
。
const path = require('path'); module.exports = { entry: { index: './src/index.js', search: './src/search.js' }, output: { path: path.join(__dirname, 'dist'), filename: '[name].js' }, mode: 'production', module: { rules: [ { test: /.(png|jpg|gif|jpeg)$/, use: [ { loader: 'url-loader', options: { limit: 10240 // 限制为10k,小于就会base64 } } ] }, ] } };
4、npm run build
打包测试
1、使用file-loader
的打包,发现图片是在的,没有base64
。
2、使用url-loader
的打包,发现图片不见了,js大小变成了138k
,说明base64
了。
5、浏览器打开index.html文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <div id="root"></div> <script src="./search.js"></script> </body> </html>