在一开始认识webpack
已经知道webpack
可以将所有资源作为一个个的模块进行处理,包括js/json/css/图片...
等。然而,它只能将js/json
作为模块打包处理。比如,我们在src
下创建一个css
目录,再创建一个index.css
文件,内容如下:
在index.html
引入该css
文件:
配置文件如下:
const HtmlWebpackPlugin = require('html-webpack-plugin')
const path = require('path')
module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle_1.js',
path: path.resolve(__dirname, './list')
},
plugins: [
new HtmlWebpackPlugin({
template: './src/index.html',
filename: 'index.html'
})
],
mode: 'development',
devServer: {
port: 8081,
hot: true,
compress: true
}
}
执行打包命令后,打开浏览器,查看控制台:
可见,引入的样式并不生效,但是js
文件生效了,说明webpack
并不能直接将css
进行打包。要想处理css
样式文件,需要使用到loader
,loader
让 webpack
能够去处理其他类型的文件,并将它们转换为有效模块,以供应用程序使用。这里我们处理css
文件就需要使用到css-loader
和style-loader
。
-
首先,下载
css-loader
和style-loader
:
-
在
webpack.config.js
文件中配置:
关于loader
的配置我们是写在module
属性下的rules
属性中,rules
属性需要配置各种各样的loader
,因此是一个数组形式,test
表示要识别哪些文件要转换,use
表示转换这类文件要使用的loader
,注意顺序是从右往左。这里是先使用css-loader
来将css
文件转换成js
,再使用style-loader
生成<style>
标签把样式引入到html
文件中。 -
之前我们引入样式文件是在
html
文件中使用<link>
标签引入,但现在不是在这里引入了,而是在入口文件index.js
中引入,这样webpack
就可以识别css文件并打包到js文件中:
执行打包命令,样式生效:
-
样式文件除了
css
文件外,还有less
文件。要处理less
文件,需要下载对应的loader
:
less
包作用是解析less
语法,less-loader
作用是把less
语法转换成css
语法。下载完后,在webpack.config.js
中添加配置:
创建less
目录,并创建index.less
文件:
记得在入口文件index.js
中引入index.less
文件:
执行打包命令,样式生效:
-
同样也可以处理
scss
文件,需要下载的是node-sass
和sass-loader
包:
同样node-sass
是用来解析scss
语法的,sass-loader
把scss
语法转换成css
语法,添加配置:
创建scss
目录并且创建index.scss
文件,内容如下:
在index.js
中引入该文件:
执行打包命令,样式生效:
关于webpack处理样式文件的就到此结束啦~
本篇笔记是看了B站up主“左耳击水兽”的讲解视频记录下来,感兴趣的同学可以直接看他视频哦。