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

本文介绍了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一样

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

webpack 分离css html,webpack分离css并单独打包的方法相关推荐

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

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

  2. webpack分离css单独打包

    原文地址为: webpack分离css单独打包 CHANGELOG 2018-02-08 14:46:06 刚看了下,网上查了 webpack单独打包css,找到的文章,本文比较靠前,但是由于写的比较 ...

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

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

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

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

  5. 如何让css与js分离

    在 webpack 我们如何让 css 与 js 分离: 我们需要安装插件:extract-text-webpack-plugin 1. 用:npm 下载插件 npm install extract- ...

  6. 翻译 | 关键CSS和Webpack: 减少阻塞渲染的CSS的自动化解决方案

    原文地址: Critical CSS and Webpack: Automatically Minimize Render-Blocking CSS 原文作者: Anthony Gore 译者: 蜗牛 ...

  7. web标准---html、css、js分离

    简单的说,就是HTML.CSS.JavaScript这三者分离.WEB标准不是某一个标准,而是一系列标准的集合.网页主要由三部分组成:结构(Structure).表现(Presentation)和行为 ...

  8. webpack 中的加载器简介||webpack 中加载器的基本使用——1. 打包处理 css 文件 2. 打包处理 less 文件 3.打包处理 scss 文件

    webpack 中的加载器 1. 通过 loader 打包非 js 模块 在实际开发过程中,webpack 默认只能打包处理以 .js 后缀名结尾的模块,其他非 .js 后缀名结尾的模块, webpa ...

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

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

最新文章

  1. .net 新添加的项目未加载_JDK 13 新特性一览
  2. win2003的IIS無法使用,又一次安裝提示找不到iisadmin.mfl文件
  3. ABAP SET UPDATE TASK LOCAL的测试
  4. 你真的理解内存分配吗?
  5. python列表写入字典_python – 将列表字典写入CSV文件
  6. CSS 两栏布局之总体设计
  7. 阿里一面,说说你了解zookeeper的应用场景有哪些?
  8. Math类的三个方法比较: floor() ceil() round()
  9. 免安装mysql配置图解_mysql免安装版配置步骤详解分享
  10. SpringSocial简介
  11. Proteus进行单片机仿真(一)
  12. 3150cdn打印机清零 hl_兄弟HL-3150/3140彩色打印机粉盒清零方法,我们提前了解一下...
  13. 数据库变为可疑_数据库显示可疑的修复方法
  14. 考研英语近义词与反义词·一
  15. 判断div是否在可视区内
  16. 在哪里写博客比较好?不同写作平台的横向对比
  17. 软件开发学习的5大技巧,你知道吗?
  18. pycharm 自动补全代码提示前符号f,m , p,c,v是什么意思?
  19. java excel row遍历空_用Java巧妙的解析Excel中的POI
  20. PROFINET的GSD文件描述

热门文章

  1. Multimodal Token Fusion for Vision Transformers
  2. 上海服务器 微信平台,微信公众平台服务器 fastweixin
  3. Maven Plugins报红的一个重大原因可能导致无法导入依赖
  4. 美赛爬美赛数据--套娃项目(数模番外篇)
  5. (Mali Graphics Debugger)MGD 在 64bit Arm Based Rooted Android 7+ 及 Windows 上的快速配置
  6. 2022-2028年中国消防机器人行业市场前瞻与投资战略规划分析报告
  7. esp32获取网络时间和天气
  8. 线性代数之——特征值和特征向量
  9. opencv,脸部识别,画框,提取,处理
  10. 2021年广东高考成绩短信查询方式,广东高考成绩查询 短信查询方式