詳解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)文章
詳解解決小程序中webview頁(yè)面多層history返回問(wèn)題
這篇文章主要介紹了詳解解決小程序中webview頁(yè)面多層history返回問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08動(dòng)態(tài)更新highcharts數(shù)據(jù)的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇?jiǎng)討B(tài)更新highcharts數(shù)據(jù)的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05js中requestAnimationFrame()解讀與使用示例
requestAnimationFrame()是JavaScript中用于創(chuàng)建高效、流暢動(dòng)畫(huà)的核心方法,它與瀏覽器的重繪過(guò)程同步,確保每次動(dòng)畫(huà)更新都與顯示器刷新率同步,下面就來(lái)一起了解一下2024-09-09簡(jiǎn)單實(shí)現(xiàn)js倒計(jì)時(shí)功能
這篇文章主要為大家詳細(xì)介紹了js倒計(jì)時(shí)效果的實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02JavaScript實(shí)現(xiàn)班級(jí)隨機(jī)點(diǎn)名小應(yīng)用需求的具體分析
班級(jí)隨機(jī)點(diǎn)名小應(yīng)用,點(diǎn)擊開(kāi)始按鈕,人員的顏色開(kāi)始變化,當(dāng)停止的時(shí)候,會(huì)有一個(gè)顏色不同的位置,那么這個(gè)位置就是被點(diǎn)到的同學(xué)了2014-05-05