• 使用ExtractTextPlugin插件抽取样式


    webpack在打包资源的时候,会将资源文件转换成javascript代码,来实现与其他模块的合并。在打包css文件时,用JS代码引入样式的方式,会有一定的延时。这就是我们使用ExtractTextPlugin插件抽取样式的原因之一。下面我们来比较一下这两种方式的差别。(本文中使用的webpack版本号3.10.0

    一、不使用插件

    方式一、直接在JS文件中引入样式文件

    首先我们编写代码,代码完成后,项目的目录结构如下:

    index.hmtl中的代码:

    index.js中通过require方法引入index.css

    index.css中的内容如下:

     接着,我们使用npm init命令生成package.json,然后安装两个loader:style-loader和css-loader。

     npm install style-loader css-loader --save-dev

    然后执行命令

    webpack ./index.js bundle.js

    最后在项目中会生成一个bundle.js

    在浏览器中打开index.html,运行结果如下图:

    检查生成的bundle.js,发现项目中的css文件是通过js代码生成的。

    方式二、配置webpack中的webpack.config.js文件

    文件目录结构如下:

    index.js中的代码修改一下,其他文件与方式一保持一致

    新建一个webpack.config.js文件,内容如下:

     

    接着,我们使用npm init命令生成package.json,然后安装两个loader:style-loader和css-loader。

     npm install style-loader css-loader --save-dev

    然后执行命令

    webpack

     生成的目录和结果与方式一完全一致。

    总结:方法二通过配置的方式比方式一灵活、方便,但是并没有解决在JS中引入样式带来的延迟问题。

    二、使用插件进行抽取

     项目的目录结构如下:

    先编辑一下webpack.config.js文件,代码如下:

    再编辑一下index.html,通过link引入样式文件,代码如下:

    index.js中的代码如下:

    index.css中的代码:

     使用npm init命令生成package.json

    安装style-loader和css-loader

    npm install style-loader css-loader --save-dev

    安装ExtractTextPlugin插件

    npm install extract-text-webpack-plugin --save-dev

    安装webpack到本地项目

    npm install webpack --save-dev

    执行命令

    webpack

     命令执行完后,目录中多了bundle.js和style.css

    查看bundle.js,会发现里面用js操作css的代码被移除了

    ExtractTextWebpackPlugin解决了用js代码生成样式文件的弊端,但美中不足的是,它仅仅帮我们提取了css文件。我们需要在页面中通过手写代码引入这个样式文件,解决这个问题需要其他插件的帮助。

  • 相关阅读:
    关于dllimport的使用
    公众平台返回原始数据为: 错误代码-40164
    CentOS7.4 系统下 Tomcat 启动慢解决方法
    PyCharm实现高效远程调试代码
    代码比较工具推荐
    CentOS7 下源码安装 python3
    linux定时任务调度定系统——opencron
    使用 ISO镜像配置 本地yum 源(RHEL, CentOS, Fedora等适用)
    Error: rpmdb open failed
    部署Redis(脚本安装)
  • 原文地址:https://www.cnblogs.com/xiaokebb/p/8274889.html
Copyright © 2020-2023  润新知