webpack入门系列教程-文本抽离
简介
如果你够细心的话,在前面几篇文章的例子里,你可能会发现我们所添加的 css 样式,全部写入到了所生成的 index.html 当中。而我们平时的开发中,往往是将样式独立出一个 .css
文件,然后引入到项目。
实际上,这两种做法,各自有各自的优点。
首先说写入到文件里的。要知道,web资源每次请求都是要消耗网络资源的,如果是通过 URL 引用样式文件,那么用户需要等待请求完成后才能看到渲染的界面,因此,在需要的样式较少时,实际上直接卸载<style>
当中,是更好的选择,因为只需要访问页面时加载一次。
然而,当样式内容较多是时,单次相应已经不足以迅速完成,那么将样式表独立抽出较好,既方便调试、有不会产生请求的同步中断。
本篇文章将介绍如何在 webpack
打包时,抽离出独立的 css 文件,所用的项目为上一篇文章中建立的测试项目。
安装插件
上一篇文章中,我建议大家安装的extract-text-webpack-plugin
便是今天的主角,如果你在上次练习中没有安装,那么现在进行安装:
1
2
# cs ~/project
# npm install extract-text-webpack-plugin@next --save-dev
# 修改配置
1 | # cs ~/project |
使用extract-text-webpack-plugin
时需要修改webpack
配置文件webpack.config.js
,将上一篇文章中的webpack.config.js
文件修改如下:
1 | const path = require('path'); |
可以看到,修改的项并不多。我们只需要将extract-text-webpack-plugin
插件导入,将css-loader
、sass-loader
两个加载器指定给extract-text-webpack-plugin
处理,并且添加一个extract-text-webpack-plugin
导出实例就可以了。
配置完成后,所有样式将以styles.css
通过<link>
标签引入页面。
运行、对比结果
1 | # cd ~/project |
访问页面后,按
文本抽离
可以看到通过<link>
标签引入了styles.css
未进行文本抽离
全部样式都写到了页面的<style>
标签中。
遇到的几个错误
extract-text-webpack-plugin 版本问题
在前几次安装中一直按照下面方法安装的
1 | # cs ~/project |
但是安装完成后,一直报错,最后发现是由于install extract-text-webpack-plugin
的版本过低,不支持webpack4
。因此需要用以下方法安装:
1 | # cs ~/project |
一定要利用extract-text-webpack-plugin
建立输出文件的实例
必须在 plugins
中增加 new ExtractTextPlugin("filename.css")