欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

webpack分離css單獨(dú)打包的方法

 更新時(shí)間:2018年06月12日 09:28:48   作者:那年、仲夏  
這篇文章主要介紹了webpack分離css單獨(dú)打包的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

本文介紹了webpack分離css單獨(dú)打包的方法,分享給大家,具體如下:

CHANGELOG

2018-02-08 14:46:06

剛看了下,網(wǎng)上查了 webpack單獨(dú)打包c(diǎn)ss,找到的文章,本文比較靠前,但是由于寫的比較混亂,因此重新整理一下內(nèi)容,更通俗易懂一點(diǎn)。

2018-02-01 14:45:23

由于這篇文章只寫了如何把CSS打包成一個(gè)CSS文件,沒(méi)有講解如何打包成多個(gè)CSS文件,經(jīng)簡(jiǎn)友提點(diǎn),這里添加上了 打包成多個(gè)CSS文件的方法。

2016-05-17 11:55

剛學(xué)習(xí)webpack,記錄一下webpack如何單獨(dú)打包c(diǎn)ss

零、介紹

以下是個(gè)人項(xiàng)目中總結(jié)出來(lái)的一些基本知識(shí),記錄在這里,加深自己的印象,也讓大家能夠更快速方便的了解webpack,并且使用它。能力所限,有錯(cuò)誤或者問(wèn)題,請(qǐng)幫忙指出。

webpack 把所有的資源都當(dāng)成了一個(gè)模塊, CSS,Image, JS 字體文件 都是資源, 都可以打包到一個(gè) bundle.js 文件中.

webpack基本的使用很簡(jiǎn)單,但是要方方面面都講解的話內(nèi)容很多,因此這邊主要講解一下 如何使用webpack單獨(dú)打包c(diǎn)ss。

至于打包出來(lái),怎么加hash值,怎么替換html中的引用路徑,怎么上傳到CND可以使用gulp來(lái)實(shí)現(xiàn)?!居信d趣后面在寫一篇文章】

一、extract-text-webpack-plugin 用法

單獨(dú)打包c(diǎn)ss,在webpack需要使用一個(gè)插件,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 里面設(shè)置抽離出來(lái)的CSS文件名叫什么。

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

稍微詳細(xì)點(diǎn),可以參考這個(gè)《extract-text-webpack-plugin 的使用及安裝

下面放兩個(gè)實(shí)際使用例子,方便大家理解

二、單頁(yè)面應(yīng)用,把JS里面的CSS單獨(dú)打包

打包一個(gè)文件,只需要常規(guī)的在入口的js文件引用 css文件即可, 打包成多個(gè)CSS文件,可以設(shè)置多個(gè)CSS入口,讓webpack用 loader去打包。 和分割單獨(dú)打包js文件一樣。下面有兩個(gè)例子。

// webpack 1.x 配置  【早期使用的配置,那時(shí)候是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') // 單獨(dú)打包出CSS,這里配置注意下
   }]
  },
  plugins: [
   new Ex("【name】.css")
  ]
 }

三、webpack如何打包多個(gè)CSS文件

2. 配置文件添加對(duì)應(yīng)配置

下面直接提供一個(gè)完成的多入口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,則可以在這里增加一個(gè)單獨(dú)打包js的處理【根據(jù)自己需求來(lái)】
// {
//  entry:{},
//  output:{},
//  ... 省略
// }
]

可能有同學(xué)還在使用webpack1.x,所以這里在貼一下webpack1.x 的簡(jiǎn)單配置

// 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一樣

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaScript設(shè)計(jì)模式之單體模式全面解析

    JavaScript設(shè)計(jì)模式之單體模式全面解析

    單體模式可以說(shuō)是javascript中最基本也是最有用的模式之一,接下來(lái)通過(guò)本文給大家解析js設(shè)計(jì)模式之單體模式,非常不錯(cuò),感興趣的朋友一起看看吧
    2016-09-09
  • TextArea設(shè)置MaxLength屬性最大輸入值的js代碼

    TextArea設(shè)置MaxLength屬性最大輸入值的js代碼

    TextArea中限制最大輸入長(zhǎng)度,實(shí)現(xiàn)的方法種種,我們不在一一介紹,今天本文推薦一種簡(jiǎn)單實(shí)用的方法,需要的朋友可以參考下
    2012-12-12
  • 微信小程序事件對(duì)象中e.target和e.currentTarget的區(qū)別詳解

    微信小程序事件對(duì)象中e.target和e.currentTarget的區(qū)別詳解

    這篇文章主要介紹了微信小程序事件對(duì)象中e.target和e.currentTarget的區(qū)別詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05
  • Bootstrap每天必學(xué)之彈出框(Popover)插件

    Bootstrap每天必學(xué)之彈出框(Popover)插件

    Bootstrap每天必學(xué)之彈出框(Popover)插件,彈出框的內(nèi)容完全可使用 Bootstrap 數(shù)據(jù) API(Bootstrap Data API)來(lái)填充,如何實(shí)現(xiàn)請(qǐng)參考本文
    2016-04-04
  • 關(guān)于JS精度丟失產(chǎn)生的原因以及解決方案

    關(guān)于JS精度丟失產(chǎn)生的原因以及解決方案

    在處理一些極端情況下的復(fù)雜數(shù)值計(jì)算時(shí),我們可能會(huì)遇到這樣的情況,就是運(yùn)算結(jié)果丟失精度,下面這篇文章主要給大家介紹了關(guān)于JS精度丟失產(chǎn)生的原因以及解決方案的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • javascript深入理解js閉包

    javascript深入理解js閉包

    閉包(closure)是Javascript語(yǔ)言的一個(gè)難點(diǎn),也是它的特色,很多高級(jí)應(yīng)用都要依靠閉包實(shí)現(xiàn)。
    2010-07-07
  • IE與FF下javascript獲取網(wǎng)頁(yè)及窗口大小的區(qū)別詳解

    IE與FF下javascript獲取網(wǎng)頁(yè)及窗口大小的區(qū)別詳解

    本篇文章主要是對(duì)IE與FF下javascript獲取網(wǎng)頁(yè)及窗口大小的區(qū)別進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-01-01
  • JavaScript簡(jiǎn)單計(jì)算人的年齡示例

    JavaScript簡(jiǎn)單計(jì)算人的年齡示例

    這篇文章主要介紹了JavaScript簡(jiǎn)單計(jì)算人的年齡,涉及簡(jiǎn)單的javascript字符串轉(zhuǎn)換及日期運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2017-04-04
  • ie下js不執(zhí)行的幾種可能

    ie下js不執(zhí)行的幾種可能

    本文主要介紹了ie下js不執(zhí)行的幾種可能,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • JS+CSS3制作炫酷的彈窗效果

    JS+CSS3制作炫酷的彈窗效果

    本文給大家分享使用js和css3制作的炫酷彈窗效果,整個(gè)背景模糊,要比純色加透明度高大上好多。對(duì)js彈窗效果感興趣的朋友一起學(xué)習(xí)吧
    2016-11-11

最新評(píng)論