这是我参与8月更文挑战的第19天,活动详情查看:8月更文挑战
在开发中,我们可能会使用 less
、sass
、stylus
等预处理器来编写 css
样式,以提高效率。那么,如何可以让我们的环境支持这些预处理器呢?
首先我们需要确定,less
、sass
等编写的 css
需要通过工具转换成普通的 css
;比如说我们现在在项目的 ./src/css
路径下新建一个 component.less
的 less
文件,里面编写一些 less
代码:
@fontSize: 50px;
@fontWeight: 700;
.content {
font-size: @fontSize;
font-weight: @fontWeight;
}
编写完之后,先思考一下,当前这个 component.less
文件是否会被 webpack
加载?当然是不会的,因为这个文件不在依赖关系图中。那为了让它可以被加载,我们可以来到 component.js
文件中,在文件的头部添加一行代码文件来引入这个 component.less
文件:import '../css/component.less';
,如图:
这样引入之后,就意味着在使用 webpack
进行编译打包时,也会对这个 less
文件进行编译和加载了。
下面,我们先运行 npm run build
命令,看下当前这个 less
文件能不能被正常解析:
可以看到,运行报错了,报错内容和之前安装 css-loader
后就运行命令出现的报错信息是类似的。那我们该怎么做呢?
首先,我们要知道,浏览器是不认识 less
代码的,所以 less
代码最终必须转换成 css
代码,浏览器才能识别。那么 less
的代码怎么转成 css
的代码呢?你可能会说,用 less-loader
呀,但事实上,less-loader
只不过是做了下处理,真正对 less
的代码做编译的其实是一个独立的工具(跟 webpack
没有任何关系)—— less
,就是说,真正把 less
代码转换成 css
代码的是这个 less
工具。
但当前项目中,还没有这个 less
工具,所以我们先安装它(只是开发时需要将 less
代码转换成 css
代码,所以这里使用 -D
):
npm install less -D
安装完成后,我们也可以在项目中的 node_modules
文件夹下的 .bin
目录下找到 lessc
这个文件(没有的话可以先刷新一下目录),它能帮助我们对 less
文件进行编译然后转换为 css
文件。
下面,我们就使用 less
这个工具来把 less
文件编译为 css
文件,运行命令:
npx less ./src/css/component.less > component.css
这条命令的意思是,使用 less
工具将当前路径下的 src
目录下的 css
目录下的 component.less
文件转换为 css
文件,生成文件的位置为当前目录下的 component.css
文件。
成功运行上述命令后,效果如下:
可以看到,在当前目录(这里为当前项目的根目录)下多了一个 component.css
文件,里面的内容也都是正常的 css
代码,之前 component.less
文件中的变量在这里已经被替换为了数值。可见,通过 shell
命令的方式可以直接把 less
文件转换成 css
文件。
但是,在开发中肯定有大量的 less
文件,如果还是像上面这样一个个地去运行 shell
命令肯定不现实呀~
所以,我们还需要在项目中安装 less-loader
,它会基于 less
这个工具(这意味着我们首先得安装好 less
,如果之前没有安装 less
,那么就得同时安装 less
和 less-loader
)帮助我们将 less
文件转成 css
文件。
好,下面我们安装 less-loader
:
npm install less-loader -D
安装好以后,我们就需要来到 webpack
的配置文件(这里是 wk.config.js
)中设置 less
文件的处理规则了:
module: {
rules: [
/* 处理 css 文件 */
// ...
/* 处理 less 文件 */
{
test: /.less$/,
use: [
'style-loader',
'css-loader',
'less-loader'
]
}
]
}
解释一下,处理 less
文件需要用到 less-loader
,less-loader
又会使用到 less
,但我们不需要在配置文件中对 less
做任何配置,因为 less-loader
会自动去加载 less
包然后进行使用的。所以,这里只需要写 less-loader
。那 less
文件加载完成后就变成了 css
文件,这时又要对 css
文件做进一步处理,所以就需要 css-loader
了,那接下来为了能让 css
代码插入到页面中,我们又需要 style-loader
了。因此,我们需要依次执行 less-loader
、css-loader
、style-loader
。
配置完成后,再来运行 npm run build
命令,效果如下:
可以看到,已经没有刚才的报错信息了。来到浏览器页面,也可以看到字体已被放大加粗了:
以上,就是 less-loader
处理 less
文件的过程,匹配上 .less
文件后依次按照 less-loader
、css-loader
、style-loader
的顺序(即编写顺序为从下往上或从右往左)来处理就可以了。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!