亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

webpack中怎么分離css

發布時間:2021-06-16 15:05:58 來源:億速云 閱讀:327 作者:Leah 欄目:web開發

今天就跟大家聊聊有關webpack中怎么分離css,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

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

webpack中怎么分離css

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

看完上述內容,你們對webpack中怎么分離css有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昌邑市| 外汇| 根河市| 青阳县| 镇安县| 延边| 吉首市| 那坡县| 望江县| 墨竹工卡县| 丹巴县| 依安县| 吉首市| 马关县| 平山县| 慈溪市| 荥阳市| 名山县| 丰都县| 景泰县| 宣武区| 新竹市| 堆龙德庆县| 太原市| 乌鲁木齐市| 襄汾县| 海丰县| 密山市| 郎溪县| 靖州| 镇原县| 托克托县| 汽车| 泾川县| 鄢陵县| 阿合奇县| 当阳市| 宜兴市| 姚安县| 建湖县| 化州市|