Webpack
能够以指定入口的一系列相互依赖的模块打包成一个文件,模块能够是js
,也能够是其余类型的文件,但其余类型的文件须要对应的Loader
转义css
Loader
的方式在webpack.config.js
文件的module.rules
下配置,一个对象便配置了编译该类型文件的Loaderhtml
module.exports = {
module: {
rules: [
{ test: /\.css$/, // 文件类型
include: [], // 查找文件的范围
exclude: [], // 查找文件需排除的文件夹
use: ['loader']// 处理文件的Loader,可配置多个Loader
}
]
}
}
复制代码
use
配置
use
是一个数组,其中能够配置多个Loader
,webpack
中多个Loader
会按从右到左
的顺序执行webpack
use
数组能够包含字符串和对象web
use字符串
若是use
中包含的是字符串,则表示的是Loader
的名称数组
use: ['style-loader', 'css-loader']
复制代码
use对象
若是use
包含的是对象
,则对象中loader
表示Loader加载器
的名称,options
表示Loader
的额外配置,它是用来给Loader传参
的babel
use: [{
loader: 'babel-loader',
options: { // 额外配置,用于给Loader传参
presets: ['@babel/preset-env'], // presets设置的是当前JS的版本
plugins: [require('@babel/plugin-transform-object-rest-spread')] // 须要的插件
}
}]
use: [{
loader: 'file-loader',
options: { // 不一样的加载器,参数不一样
name: '[name].[hash:8].[ext]',
publicPath: './images',
outputPath: './images'
}
}]
复制代码
CSS
模块CSS
的两种方式
CSS
时,在最后生成的JS
文件中进行处理,动态建立Style
标签,放入head
标签中CSS
文件拆分出来,CSS
相关模块最终打包到一个指定的CSS
文件中,经过手动添加link
标签去引入这个文件Webpack
编译CSS
(第一种)安装style-loader
和css-loader
模块,并在webpack.config.js
中配置Loader
ui
module.exports = {
module: {
rules: [
{ test: /\.css$/, use: ['style-loader', 'css-loader'] }
]
}
}
复制代码
在遇到.css
文件,Webpack
会先用css-loader
去解析这个文件,遇到@import
等语句就将相应样式文件引入,最后全部的CSS
将使用style-loader
生成一个内容为最终解析完的CSS
代码的Style
标签,放到head
标签里spa
使用extract-text-webpack-plugin
插件,将css-loader
和style-loader
编译好的CSS
文件抽离出来,放到一个单独问.css
文件中,而后在index.html
中使用link
引入插件
const ExtractTextPlugin = require("extract-text-webpack-plugin");
module.exports = {
module: {
rules: [{
test: /\.css$/,
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: "css-loader"
})
}]
},
// CSS存放到style.css文件中
plugins: [new ExtractTextPlugin("styles.css")]
}
// index.html
// /dist/为输出文件,具体看本身的output配置
<link rel="stylesheet" href="./dist/style.css" type="text/css" />
复制代码