CSS代码分离

为了用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中引入。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 无意中看到zhangwnag大佬分享的webpack教程感觉受益匪浅,特此分享以备自己日后查看,也希望更多的人看到...
    小小字符阅读 8,227评论 7 35
  • 前言 WebPack 是什么? WebPack 是什么,WebPack 可以看做是模块打包机:它做的事情是,分析你...
    Promise__阅读 1,162评论 3 12
  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 12,710评论 7 110
  • 最近在学习 Webpack,网上大多数入门教程都是基于 Webpack 1.x 版本的,我学习 Webpack 的...
    My_Oh_My阅读 8,204评论 40 247
  • 一个美美的下午,怀着一颗感受高雅的心和小伙伴一起去了郑史云老师的茶点室-一栋优雅别致的别墅!刚走到门口就看到了一台...
    e0f29164ce7b阅读 270评论 0 0