本文介绍了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")

]

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

二、单页面应用,把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一样

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

如何将一个html网页打包,webpack分离css单独打包的方法相关推荐

  1. 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. Photoshop图象切片保存为网页HTML(DIV+CSS布局)的方法

    Photoshop图象切片保存为网页HTML(DIV+CSS布局)的方法 首先,制作图象切片(以一张图片为例子) 一.选择"切片"工具,在图像上拖动以分割图像(例如:一张图像切割2 ...

  8. html5页面文件打包,Webpack入门(四)——HTML打包

    到目前为止,有关Webpack最基础的内容差不多已经讲完了,其中包括Webpack运行的基本流程.CSS的打包和图片的打包,也就是说,当你掌握这几节之后,基本上就能像以前不用Webpack时一样愉快地 ...

  9. Vue——10 - webpack打包保姆级教程01——打包js、json、css、less、html、背景图片以及图片、字体(Font)文件,devsever,生产环境配置以及css的兼容写法

    目录 一.webpack打包JS文件 1.新建入口文件index.js和mathUtils.js,index.js是依赖于mathUtils.js 2.然后使用webpack命令打包js文件 二.打包 ...

最新文章

  1. 如何看待计算机视觉未来的走向?
  2. macOS下nginx配合obs做推流直播.md
  3. dos中的for命令简单使用
  4. asp.net常用函数 选择自 UAM_Richard 的 Blog
  5. 第6章 服务模式 Service Interface(服务接口)
  6. 书评专家_书评:“开放”探讨开放的广泛文化含义
  7. jersey tomcat MySQL_使用 Jersey 和 Apache Tomcat 7 构建 JAX-RS 环境
  8. matlab中round函数_Excel中round函数的使用方法
  9. 让数据可视化告诉你,中秋吃这样的月饼绝对没错
  10. 迷宫问题c语言图形化,c语言写的迷宫问题
  11. 梯度,散度,旋度的理解
  12. html5 职工入职后台管理系统_后台管理平台
  13. heartbeat+drbd+mysql高可用架构
  14. 增量式修改检验和(IP, TCP, UDP)算法的研究和实现
  15. python函数速查手册_Pandas常用函数速查手册中文版
  16. 在线客服html前端代码QQ微信联系
  17. 软件设计师考试详细介绍(最全)
  18. TF卡和SD卡的区别
  19. 翻译 Duckietown an Open, Inexpensive and Flexible Platform for Autonomy Education and Research
  20. 磁条卡芯片卡读写器|写卡器MCR200的安装与操作说明

热门文章

  1. java中map怎么取值_java中map的取值
  2. 调试OMAPL138的GEL文件简析
  3. 聚类系列-层次聚类(Hierarchical Clustering)
  4. c++ ----to_string、stoi()、atoi()
  5. Mendeley操作指南
  6. Ubuntu20.4安装Mendeley
  7. web前端学习28-29(综合案例:圣诞节的那些事)
  8. assertion: 18 { ok: 0.0, errmsg: auth failed, code: 18 }
  9. 深拷贝与浅拷贝的简单理解
  10. 使用Electron实现一个iPic