webpack实践(2)-- css file的加载
2019-06-24 本文已影响0人
kim_jin
我们之前一节都是对一些js的资源进行打包,但是如果我们的项目中还有一些其他的资源呢?比如说:images
。
在webpack
中除了可以引入JavaScript
,还可以通过loader
引入其他类型的文件。主要的实现是使用loader
来实现的。
加载各类资源用到的module
- 加载
css
文件需要style-loader css-loader
- 字体和图片需要
file-loader
-
CSV
、TSV
和XML
需要csv-loader
和xml-loader
安装
![](https://img.haomeiwen.com/i13681871/8dccf40560a8c44d.png)
现在对代码进行修改后
![](https://img.haomeiwen.com/i13681871/1337258be05810a5.png)
![](https://img.haomeiwen.com/i13681871/b55861d90acca599.png)
加载CSS
为了在JavaScript
模块中的import一个CSS
文件,需要安装 style-loader 和 css-loader这两个插件,在module
的配置中添加这些loader
npm install --save-dev style-loader css-loader
并在webpack.config.js
的文件中的module
进行相关的修改:
![](https://img.haomeiwen.com/i13681871/e6b77c5a9bb1e63f.png)
添加一个css
文件,用来使用样式
![](https://img.haomeiwen.com/i13681871/07a991e97acd9030.png)
![](https://img.haomeiwen.com/i13681871/fa2df95a3770a75d.png)
对index
的文档也进行相对应的修改
![](https://img.haomeiwen.com/i13681871/6e0d83eff5d24c89.png)
加载images图像
在加载css
的时候,我们也可能需要background
会让icon
这样的图片,但是我们要要如何处理呢?在这个部分我们使用的是file-loader
,我们就可以将这些内容混合到css
里面了。
npm install --save-dev file-loader
对webpack
的配置如下:
![](https://img.haomeiwen.com/i13681871/4b6687650eacc546.png)
我们尝试向项目中添加一个图像,看看它具体是如何工作的,现在项目中添加一个图片:
![](https://img.haomeiwen.com/i13681871/7213914a0cc590f9.png)
![](https://img.haomeiwen.com/i13681871/188f5991bdc6c482.png)
![](https://img.haomeiwen.com/i13681871/6b8183ce1958c755.png)
然后执行打包的命令,打包成功后可以在网页中看到该界面。
加载数据
有的时候我们请求的资源或是数据是内置,如JSON
文件,CSV
,TSV
和XML
。我们有一个例子比如说我们要本地的json
文件,因为加载CSV
、TSV
和XML
需要用到CSV-loader
和xml-loader
,让我们来加载这三类文件。
npm install --save-dev csv-loader xml-loader
![](https://img.haomeiwen.com/i13681871/e0f504dad463f392.png)
现在在项目目录添加一个data.xml
文档:
![](https://img.haomeiwen.com/i13681871/de42771f38d46a28.png)
![](https://img.haomeiwen.com/i13681871/2c3f4321b36aadbc.png)
可以 import
这四种类型的数据(JSON, CSV, TSV, XML
)中的任何一种,所导入的 Data
变量,将包含可直接使用的已解析 JSON
:
![](https://img.haomeiwen.com/i13681871/08bdac16c90333fa.png)
执行npm run build
然后打开index.html
,在控制台看一下打出控制台,我们可以看到导入的结果。
![](https://img.haomeiwen.com/i13681871/e3ca5e1bd1b192a8.png)