詳解webpack分離css單獨(dú)打包
這篇文章只寫(xiě)了如何把CSS打包成一個(gè)CSS文件,沒(méi)有講解如何打包成多個(gè)CSS文件,經(jīng)簡(jiǎn)友提點(diǎn),這里添加上了 打包成多個(gè)CSS文件的方法。
瞎扯
webpack 把所有的資源都當(dāng)成了一個(gè)模塊, CSS,Image, JS 字體文件 都是資源, 都可以打包到一個(gè) bundle.js 文件中.
但是有時(shí)候需要把樣式 單獨(dú)的打包成一個(gè)文件, 然后放到 CND上, 然后緩存到瀏覽器客戶端中
一、extract-text-webpack-plugin 使用方法
這個(gè)操作很簡(jiǎn)單的,只需要一個(gè)插件就好了,就是extract-text-webpack-plugin
1. 安裝extract-text-webpack-plugin
npm install extract-text-webpack-plugin --save-dev
2. 配置文件添加對(duì)應(yīng)配置
首先require一下
var ExtractTextPlugin = require("extract-text-webpack-plugin");
plugins里面添加
new ExtractTextPlugin("styles.css"),
實(shí)例:
plugins: [
new webpack.optimize.CommonsChunkPlugin('common.js'),
new ExtractTextPlugin("styles.css"),
],
modules里面對(duì)css的處理修改為
{
test: /\.css$/,
loader: ExtractTextPlugin.extract("style-loader","css-loader")
},
千萬(wàn)不要重復(fù)了,不然會(huì)不起作用的
我這里如下:
module: {
loaders: [
{
test: /\.css$/,
loader: ExtractTextPlugin.extract("style-loader","css-loader")
},
{
test: /\.scss$/,
loader: "style!css!sass"
},
{
test: /\.less$/,
loader: "style!css!less"
},
]
},
3. 在引入文件里面添加需要的css,【舉例如下】
require('../less/app.less');
require('./bower_components/bootstrap-select/dist/css/bootstrap-select.min.css');
require('./bower_components/fancybox/source/jquery.fancybox.css');
二、如何把CSS打包成一個(gè)文件, 和 把CSS打包成多個(gè)文件
打包一個(gè)文件,只需要常規(guī)的在入口的js文件引用 css文件即可, 打包成多個(gè)CSS文件,可以設(shè)置多個(gè)CSS入口,讓webpack用 loader去打包。 和分割單獨(dú)打包js文件一樣。下面有兩個(gè)例子。
// 使用webpack 打包單獨(dú)的postcss語(yǔ)法的css文件
/* 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: './【path】/index.js',
/* index.js 里 require('./【name】.css');就好 我在看看文檔是不是直接不用引入js文件 */
output: {
filename: 'index.js'
},
module: {
loaders: [{
test: /\.css$/,
loader: Ex.extract('style-loader', 'css-loader!postcss-loader') /*這里的寫(xiě)法注意下 */
}]
},
postcss: function() {
return [autoprefixer, cssnext, precss, cssnano]
},
plugins: [
new Ex("【name】.css")
]
}
// 使用webpack 打包單獨(dú)的多個(gè)postcss語(yǔ)法的css文件
var precss = require('precss');
var cssnext = require('cssnext');
var autoprefixer = require('autoprefixer');
var cssnano = require('cssnano');
var Ex = require('extract-text-webpack-plugin');
var webpack = require('webpack');
module.exports = {
entry: {
ac1: './src/actother.css',
ac2: './src/index.css'
},
output: {
filename: "[name].css"
},
module: {
loaders: [{
test: /\.css$/,
loader: Ex.extract('style-loader', 'css-loader!postcss-loader')
}]
},
postcss: function() {
return [autoprefixer, precss, cssnano, cssnext]
},
plugins: [
new Ex('[name].css')
]
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
分享一個(gè)自己寫(xiě)的簡(jiǎn)單的javascript分頁(yè)組件
這篇文章主要分享一個(gè)自己寫(xiě)的簡(jiǎn)單的javascript分頁(yè)組件,效果十分不錯(cuò),代碼也很詳盡,這里推薦給小伙伴們。2015-02-02
初探j(luò)s和簡(jiǎn)單隱藏效果的實(shí)例
下面小編就為大家分享一篇初探j(luò)s和簡(jiǎn)單隱藏效果的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
詳解微信小程序框架wepy踩坑記錄(與vue對(duì)比)
這篇文章主要介紹了詳解微信小程序框架wepy踩坑記錄(與vue對(duì)比),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03
復(fù)選框全選與全不選操作實(shí)現(xiàn)思路
通過(guò)js簡(jiǎn)單實(shí)現(xiàn)下復(fù)選框全選與全不選,很常用的一個(gè)操作,具體實(shí)現(xiàn)思路及代碼如下,有需求的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08
千分位數(shù)字格式化(用逗號(hào)隔開(kāi) 代碼已做了修改 支持0-9位逗號(hào)隔開(kāi))的JS代碼
這篇文章主要介紹了千分位數(shù)字格式化的JS代碼,有需要的朋友可以參考一下2013-12-12
v3-admin-vite 整合pont的詳細(xì)過(guò)程
這篇文章主要介紹了v3-admin-vite 整合pont的詳細(xì)過(guò)程,目前后端的Admin模板使用的是v3-admin-vite,需要整合pont接口,方便前后端統(tǒng)一一體化開(kāi)發(fā),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03
在html頁(yè)面上拖放移動(dòng)標(biāo)簽
在html頁(yè)面上拖放移動(dòng)標(biāo)簽,需要的朋友可以參考下。2010-01-01
微信小程序?qū)崿F(xiàn)簡(jiǎn)單的計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)簡(jiǎn)單的計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07

