CSS代码分离

作者: 炎武森禄 | 来源:发表于2017-02-15 15:33 被阅读0次

为了用webpack打包CSS文件,必须在在你的JavaScript代码中引入CSS文件, 并运用 css-loader (将CSS输出为JS模块), 还可以运用ExtractTextWebpackPlugin插件 (提取已经被打包的CSS并输出为CSS文件)。

引入CSS

像JavaScript模块一样引入CSS文件,例如在vendor.js中:

import 'bootstrap/dist/css/bootstrap.css';

使用css-loader

webpack.config.js配置 css-loader如下:

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

如此,CSS与您的JavaScript被打包在一起。

这有一个缺点,你将无法利用浏览器的异步和并行加载CSS的能力。 相反,您的网页必须等待,直到整个JavaScript包加载完成,才能去绘制页面。

webpack可以运用 ExtractTextWebpackPlugin插件单独打包CSS来帮助我们来解决这一问题 。

使用ExtractTextWebpackPlugin

执行如下命令,安装 ExtractTextWebpackPlugin 插件

npm i --save-dev extract-text-webpack-plugin@beta

为了使用这一插件,我们需要对 webpack.config.js文件做两处修改。

module.exports = {
    module: {
         rules: [{
             test: /\.css$/,
-            use: 'css-loader'
+            use: ExtractTextPlugin.extract({
+                use: 'css-loader'
+            })
         }]
     },
+    plugins: [
+        new ExtractTextPlugin('styles.css'),
+    ]
}

我们可以为所有的CSS模块生成一个单独的新包,并且以一个单独的标签在index.html中引入。

相关文章

  • CSS代码分离

    为了用webpack打包CSS文件,必须在在你的JavaScript代码中引入CSS文件, 并运用 css-loa...

  • checkbox模拟移动端按钮切换

    为了实现前端的css与js彻底分离不再耦合,应用checkbox的css新的选择器进行代码的切换 代码 html代...

  • webpack 学习笔记

    本文主要分为:环境配置使用配置文件CSS 处理ES6 代码编辑文件压缩SASS 处理CSS 与 JS 分离文件处理...

  • 测试小工具_Css碎碎念

    CSS主要用于定义怎么显示HTML元素,使用外部样式表可与html代码分离,减少耦合。文件保存后缀名为.css。本...

  • WebPack打包React项目, 减小打包后生成的js文件.

    具体思路 1: 分离出业务代码和第三方库 2: 分离css 3: 清除打包后的文件中的注释, 和copyright...

  • 【CSS】按钮特效 - 3

    HTML代码 CSS代码 HTML代码 CSS代码 HTML代码 CSS代码 HTML代码 CSS代码 最后两个效...

  • Web前端开发规范文档

    基本准则 符合web标准,html语义化;html,css,JavaScript分离;代码简洁有序,尽可能减少冗余...

  • css的书写位置

    1)内嵌式写法1,代码的可维护性不好,一个页面代码太多2,没有实现html和css代码的分离3,影响的范围只有当前...

  • webpack 插件之 extract-text-webpack

    extract-text-webpack-plugin 的作用是分离项目中的css文件,常用配置代码如下 解释一下...

  • JS

    CSS: 层叠样式表 主要作用: 美化页面, 将美化和HTML进行分离,提高代码复用性 选择器: ​ 元素选择...

网友评论

    本文标题:CSS代码分离

    本文链接:https://www.haomeiwen.com/subject/oueqwttx.html