(5/24) 模块化:实现快速CSS文件打包

写在前面:为了兼容,此处的webpack版本为3.6.0、webpack-dev-server版本为2.9.七、css-loader版本为2.0.0、style-loader版本为0.23.1,若在下列安装后运行出错,通常是版本问题,能够安装此处的指定版原本解决。css

1.前言

webpack把多个文件打包到一个js里,能够减小http的请求数。要完成CSS打包之,须要完成对webpack.config.js文件里的Loaders配置项进行针对性的配置。webpack

1.1 Loaders

Loaders是Webpack最重要的功能之一,他也是Webpack如此盛行的缘由。经过使用不一样的Loader,Webpack能够对不一样的文件格式进行特定处理。web

Loaders使用例子:npm

(1)分析JSON文件并把它转换为JavaScript文件;浏览器

(2)以把ES6或者ES7的代码,转换成大多浏览器兼容的JS代码;服务器

(3)对React的开发而言,合适的Loaders能够把React的JSX文件转换为JS文件。webpack-dev-server

(4)能够把SASS文件的写法转换成CSS,而不在使用其余转换工具等。工具

注意:全部的Loaders都须要在npm中单独进行安装,并在webpack.config.js里进行配置,Loaders的配置项包括有:url

 认识了Loaders相关信息以后,咱们开始考虑如何打包CSS文件。spa

2.打包css文件

 

 

 2.1 创建index.css文件

要打包css,首先得有个css文件,在/src目录下,咱们创建一个css文件夹,在文件夹里创建index.css文件。代码内容以下。

src/css/index.css:

body{
    background-color: #018eea;
    color: red;
    font-size: 32px;
    text-align: center;
}

css文件创建完成后,将其引入到入口文件中,才能实现打包,此节中咱们把它引入到entry.js中,在src目录下的entry.js文件首行加入如下代码:

import css from './css/index.css'

当css引入完成后,咱们就能够开始使用loader来解析css文件了,此处的解析须要两个loader分别是style-loader和css-loader。

2.2 style-loader安装

 style-loader是用来处理css文件中的url(),style-loader在npm中网址

采用npm install进行项目安装(若失败,采用cnpm安装)

npm install style-loader --save-dev
--save-dev:表示将模块安装到项目目录下,并在package文件的devDependencies节点写入依赖。

2.3 css-loader安装

css-loader是用来将css插入到页面的style标签,css-loader在npm中网址

采用npm install进行项目安装(若失败,采用cnpm安装),npm install 会默认安装最新的版本。

npm  install --save-dev css-loader

 

两个loader都下载安装好后,咱们就能够在webpack.config.js文件里进行loaders配置工做了。

2.4 loaders配置

修改webpack.config.js中module属性中的配置代码以下:

module:{
        rules: [
            {
              test: /\.css$/,
              use: [ 'style-loader', 'css-loader' ]
            }
          ]
    },

loader的三种写法:

第一种写法:直接用use。

module:{
        rules: [
            {
              test: /\.css$/,
              use: [ 'style-loader', 'css-loader' ]
            }
          ]
    },

第二种写法:把use换成loader。

module:{
        rules:[
            {
                test:/\.css$/,
                loader:['style-loader','css-loader']
            }
        ]
    },

第三种写法:用use+loader的写法:

module:{
        rules:[
            {
                test:/\.css$/,
                use: [
                    {
                        loader: "style-loader"
                    }, {
                        loader: "css-loader"
                    }
                ]
            }
        ]
    },

 

 2.5 启动服务

在终端里输入 npm run server 打开服务器,访问咱们上节配置的本地服务端口(localhost:1818),能够看到效果。

效果为:

 

附录此时项目目录结构:

相关文章
相关标签/搜索