The way of Webpack learning (IV.) -- Packaging CSS(打包css)
一:目录结构

二:webpack.config.js的配置
const path = require('path');
module.exports = {
mode:'development',
entry:{
app:'./src/app.js'
},
output:{
path:path.resolve(__dirname,'dist'),
publicPath:'./dist/',//设置引入路径在相对路径
filename:'[name].bundle.js'
},
module:{
rules:[
{
test: /\.css$/,
use:[
{
loader:'style-loader'
//style-loader作用:主要创建style标签,把css插入html代码中。<style></style>
//如果想要插入link标签,去引入css的话,使用style-loader/url。<link href="path/to/file.css" rel="stylesheet">
},
{
loader:'css-loader'//css-loader先执行,放在后面的先执行。
//css-loader作用:解决import css的问题,把css代码打包到js代码里面。一般情况下,css不能使用import导入
//file-loader作用:可以把css和js分别打包成两个文件。
}
]
}
]
}
}
三:其他文件配置
//app.js import './css/base.css'
到这里,一个正常的打包css过程就完成了。下面介绍一个这些loader的属性,让我们的使用更灵活。
四:style-loader/useable
//app.js import base from './css/base.css' import common from './css/common.css' base.use();//渲染base.css common.unuse();//不渲染common.css //webpack.config.js 修改loader loader:'style-loader/useable'
五:style-loader的实现原理
//简易的style-loader实现
//将css插入到head标签内部 module.exports = function (source) { let script = (` let style = document.createElement("style"); style.innerText = ${JSON.stringify(source)}; document.head.appendChild(style); `); return script; } //使用方式1 resolveLoader: { modules: [path.resolve('node_modules'), path.resolve(__dirname, 'src', 'loaders')] }, { test: /\.css$/, use: ['style-loader'] }, //使用方式2 将自己写的loaders发布到npm仓库,然后添加到依赖,按照方式1中的配置方式使用即可
六:css-loader的实现原理(待完善)
七:提取css:ExtractTextWebpackPlugin
八:更强大的处理css代码的loader:postcss
九:怎么开发一个新的loader?

浙公网安备 33010602011771号