原文地址为: webpack分离css单独打包

CHANGELOG

2018-02-08 14:46:06

刚看了下,网上查了 webpack单独打包css,找到的文章,本文比较靠前,但是由于写的比较混乱,因此重新整理一下内容,更通俗易懂一点。

2018-02-01 14:45:23

由于这篇文章只写了如何把CSS打包成一个CSS文件,没有讲解如何打包成多个CSS文件,经简友提点,这里添加上了 打包成多个CSS文件的方法。

2016-05-17 11:55

刚学习webpack,记录一下webpack如何单独打包css


零、介绍

以下是个人项目中总结出来的一些基本知识,记录在这里,加深自己的印象,也让大家能够更快速方便的了解webpack,并且使用它。能力所限,有错误或者问题,请帮忙指出。

webpack 把所有的资源都当成了一个模块, CSS,Image, JS 字体文件 都是资源, 都可以打包到一个 bundle.js 文件中.

webpack基本的使用很简单,但是要方方面面都讲解的话内容很多,因此这边主要讲解一下 如何使用webpack单独打包css。

至于打包出来,怎么加hash值,怎么替换html中的引用路径,怎么上传到CND可以使用gulp来实现。【有兴趣后面在写一篇文章】

一、extract-text-webpack-plugin 用法

单独打包css,在webpack需要使用一个插件,extract-text-webpack-plugin

1. 安装extract-text-webpack-plugin

// use npm
npm install extract-text-webpack-plugin --save-dev// or use yarn
yarn add extract-text-webpack-plugin

2. 配置

加载器里面写好插件的配置(使用什么加载器),在webpack的 plugins 里面设置抽离出来的CSS文件名叫什么。

var Ex = require('extract-text-webpack-plugin');
// ...省略
module: {loaders: [{test: /\.less/,loader: Ex.extract('style-loader', 'css-loader','less-loader')  // 单独打包出CSS,这里配置注意下}]
},
plugins: [new Ex("【name】.css")
]

稍微详细点,可以参考这个《extract-text-webpack-plugin 的使用及安装》


下面放两个实际使用例子,方便大家理解

二、单页面应用,把JS里面的CSS单独打包

打包一个文件,只需要常规的在入口的js文件引用 css文件即可, 打包成多个CSS文件,可以设置多个CSS入口,让webpack用 loader去打包。 和分割单独打包js文件一样。下面有两个例子。【例子来源】

// webpack 1.x 配置 【早期使用的配置,那时候是1.x】
/* webpack.config.js */
var precss = require('precss');
var cssnext = require('cssnext');
var autoprefixer = require('autoprefixer');
var cssnano = require('cssnano');
var Ex = require('extract-text-webpack-plugin');
module.exports = {entry: './index.js',output: {filename: 'index.js'},module: {loaders: [{test: /\.less/,loader: Ex.extract('style-loader', 'css-loader','less-loader')  // 单独打包出CSS,这里配置注意下}]},plugins: [new Ex("【name】.css")]}

三、webpack如何打包多个CSS文件

2. 配置文件添加对应配置

下面直接提供一个完成的多入口CSS打包配置

// webpack 3.x 的配置
var path = require('path')
var glob = require('globby')
var webpack = require('webpack')
var ExtractTextPlugin = require('extract-text-webpack-plugin')// CSS入口配置
var CSS_PATH = {css: {pattern: ['./src/**/[^_]*.less', '!./src/old/**/*.less'],src: path.join(__dirname, 'src'),dst: path.resolve(__dirname, 'static/build/webpack'),}
}// 遍历除所有需要打包的CSS文件路径
function getCSSEntries(config) {var fileList = glob.sync(config.pattern)return fileList.reduce(function (previous, current) {var filePath = path.parse(path.relative(config.src, current))var withoutSuffix = path.join(filePath.dir, filePath.name)previous[withoutSuffix] = path.resolve(__dirname, current)return previous}, {})
}module.exports = [{devtool: 'cheap-module-eval-source-map',context: path.resolve(__dirname),entry: getCSSEntries(CSS_PATH.css),output: {path: CSS_PATH.css.dst,filename: '[name].css'},module: {rules: [{test: /\.less$/,use: ExtractTextPlugin.extract({use: ['css-loader', 'postcss-loader', 'less-loader']})}]},resolve: {extensions: ['.less']},plugins: [new ExtractTextPlugin('[name].css'),]},
// 如果还需要打包js,则可以在这里增加一个单独打包js的处理【根据自己需求来】
// {// entry:{},
// output:{},
// ... 省略
// }
]

可能有同学还在使用webpack1.x,所以这里在贴一下webpack1.x 的简单配置

// webpack 1.x 版本
// ...其他配置和webpack3.x一样
module: {loaders: [{test: /\.less$/,loader: ExtractTextPlugin.extract("style-loader","css-loader","postcss-loader","less-loader")},]
}
plugins: [new ExtractTextPlugin('[name].css'),
]
// ...其他配置和webpack3.x一样

转载请注明本文地址: webpack分离css单独打包

webpack分离css单独打包相关推荐

  1. 如何将一个html网页打包,webpack分离css单独打包的方法

    本文介绍了webpack分离css单独打包的方法,分享给大家,具体如下: CHANGELOG 2018-02-08 14:46:06 刚看了下,网上查了 webpack单独打包css,找到的文章,本文 ...

  2. webpack如何将css文件分离的,详解webpack分离css单独打包

    这篇文章只写了如何把css打包成一个css文件,没有讲解如何打包成多个css文件,经简友提点,这里添加上了 打包成多个css文件的方法. 瞎扯 webpack 把所有的资源都当成了一个模块, css, ...

  3. 打包成单独的HTML文件,【WEBPACK】分离css单独打包

    时间:2018-11-21 00:58:56 这篇文章非常非常早了,webpack4下已经无法用了, 最新可以看这里webpack实战场景系列 CHANGELOG 2018-02-08 14:46:0 ...

  4. webpack 分离css html,webpack分离css并单独打包的方法

    这篇文章主要介绍了webpack分离css单独打包的方法,内容挺不错的,现在分享给大家,也给大家做个参考. 本文介绍了webpack分离css单独打包的方法,分享给大家,具体如下: CHANGELOG ...

  5. webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)

    最近在项目中使用了一下webpack,所以这里打算对目前了解的使用方法做一个小小的总结 为什么是webpack webpack一下自己就?了,这绝对是一个重要的原因. 然后我之前项目中都是通过requ ...

  6. webpack对css文件打包:css-loader和style-loader版本过高问题

    webpack对css文件打包:css-loader和style-loader版本过高问题 问题描述 安装css-loader:npm install --save-dev css-loader和st ...

  7. webpack 打包html中css样式如果处理,webpack中单独打包css样式

    这次给大家带来webpack中单独打包css样式,webpack中单独打包css样式的注意事项有哪些,下面就是实战案例,一起来看一下. 零.介绍 以下是个人项目中总结出来的一些基本知识,记录在这里,加 ...

  8. webpack 单独打包指定JS文件

    背景 最近接到一个需求,因为不确定打出的前端包所访问的后端IP,需要对项目中IP配置文件单独拿出来,方便运维部署的时候对IP做修改.因此,需要用webpack单独打包指定文件. CommonsChun ...

  9. The way of Webpack learning (IV.) -- Packaging CSS(打包css)

    一:目录结构 二:webpack.config.js的配置 const path = require('path');module.exports = {mode:'development',entr ...

最新文章

  1. c++调用python3
  2. php psr-2,「PSR 规范」PSR-2 编码风格规范
  3. java调用天气预报的webservice
  4. Android的ADB工具使用
  5. 我看中国软件---问题篇
  6. 动态规划 —— 区间 DP
  7. vue 导入excel解析_VUE中导入excel文件
  8. 超 60 万 GPS 定位服务被曝漏洞,用户信息或将暴露!
  9. 腾讯生死年 | 畅言
  10. 使用 HTML5 webSocket API实现即时通讯的功能
  11. java反编译工具jd-gui下载与使用
  12. 聊聊集成电路工程技术人员都有哪些?
  13. onvif 模拟摄像头_ONVIF协议测试工具(ONVIF Device Test Tool)
  14. Elasticsearch集群安全防护提出几个建议
  15. 聚类的方法、原理以及一般过程
  16. 暑假视力如何保护?护眼台灯可以保护视力
  17. 二叉树——推荐一些神奇的网站
  18. ios 编译链接库问题
  19. VIN码识别技术加速汽车后市场服务速度
  20. mysql COMMENT字段注释,表注释使用(转)

热门文章

  1. tableau:堆积图
  2. 独家分享——大牛教你如何学习Web前端开发
  3. 合肥工业大学计算机与信息学院罗徇,合肥工业大学计算机与信息学院导师介绍:吴共庆...
  4. gateway集成nacos、loadbalancer实现自定义负载均衡器,带源码解析(cloud版本:2021.0.3|boot版本:2.7.4)[场景1:灰度发布(金丝雀发布)]
  5. Excel中月份 转季度
  6. 自己写strcpy函数
  7. SQL Server 2005 Express 远程连接 客户端 远程访问 设置 全攻略 (适用 SQL Server 2005 其他版本)
  8. 今日学习内容--机器学习的测试集选择方法
  9. HowTo——TMS320F28X系列DSP开发技巧总结
  10. 计算机考研科目887,2017年南京师范大学计算机科学与技术学院887数据库原理考研题库...