学习内容:webpack中的loader
- 什么是loader
loader 用于对模块的源代码进行转换。loader 可以使你在 import
或"加载"模块时预处理文件。因此,loader 类似于其他构建工具中“任务(task)”,并提供了处理前端构建步骤的强大方法。loader 可以将文件从不同的语言(如 TypeScript)转换为 JavaScript,或将内联图像转换为 data URL()。loader 甚至允许你直接在 JavaScript 模块中 import
CSS文件!
- 怎么使用loader
它有三种使用的形式:
(1):在 webpack.config.js 文件中指定 loader。
(2):在每个 import
语句中显式指定 loader。
(3):在 shell 命令中指定它们。
- 怎么配置loader
-
module: { rules: [ { test: /\.css$/, use: [ 'style-loader',css-loader', options: { modules: true } } ] } ] }
- css处理
首先安装 npm install css-loader
使用mini-css-extract-plugin将css抽离成一个单独的文件
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
module:{
rules:[
//加载css样式,顺序不能颠倒
{
test:/\.css$/,
use:[MiniCssExtractPlugin.loader,'css-loader']
},
]
}
- 加载font字体
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
module:{
rules:[
{
test:/\.(woff|woff2|eot|ttf|otf)$/,
//可以加载任何类型的资源
type:'asset/resource'
}
]
}
- babel-loader
它是webpack解析ES6的桥梁
在 webpack 配置对象中,需要添加 babel-loader 到 module 的 loaders 列表中,像下面这样:
module: {
rules: [
{
test: /\.js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
}
]
}
- 代码分离
常用的有如下三种方法:
(1)使用entry配置手动地分离代码(入口起点)
(2)使用Entry dependencies 或者 SplitChunksPlugins去重和分离代码(防止重复)
(3) 通过模块的内联函数调用分离代码(动态导入)
学习内容:如何拆分组件
HTML+CSS+图片资源 -------细心(结构、样式、图片资源)