網站首頁 編程語言 正文
多個文件導入loader處理
// 文件base.css
@import './base.css';
// 文件login.css
.title {
color: red;
display: grid;
transition: all .5s;
user-select: none;
background: linear-gradient(to bottom, white, black);
}
module.exports = {
entry: './src/index.js',
module: {
rules: [
{
test: /\.css$/,
use: ['style-loader', {
loader: 'css-loader',
options: {
importLoaders: 1 // 工作時找到其其它css,讓前1個的loader取處理
}
},
{
loader: 'postcss-loader',
options: {
postcssOptions: {
plugins: [
// require('autoprefixer'),
'postcss-preset-env' // 這是個工具包集合,包括autoprefixer
]
}
}
}]
}
]
}
};
分析
module中rules的use執行順序是從后往前執行
處理base.css:
- postcss-loader通過postcss-preset-env插件對base.css進行加前綴等兼容處理
- 執行css-loader發現@import引入的文件,importLoaders: 1交給前面一個loader(postcss-loader)處理
// css-loader可以處理 import / require的文件, 得到樣式的數組- style-loader 將樣式處理得到style標簽
處理import/require引入的圖片
import importImg from '../assets/xx.png' // import導入
function packageImage() {
// let img = require('../assets/xx.png').default // require導入
return `
<img src="${importImg}" />
`
}
document.body.innerHTML += packageImage();
module.exports = {
module: {
rules: [
{
test: /\.(png|jpe?g|gif|svg)$/i,
use: {
loader: 'file-loader',
options: {
esModule: false // 不轉為esModule
}
}
}
]
}
}
處理 css中background-image引入的圖片, 并自定義打包后的名稱及存放路徑
// /src/css/image.css
.bg {
background-image: url(../assets/xx.png);
background-size: cover;
width: 200px;
height: 400px;
}
// /src/js/login.js
import '../css/login.css'
function login() {
return `
<div class="title">login-title</div>
`
}
document.body.innerHTML += login();
module.exports = {
module: {
rules: [
{
test: /\.css$/,
use: ['style-loader', {
loader: 'css-loader',
options: {
importLoaders: 1, // 工作時找到其其它css,讓前1個的loader取處理
esModule: false
}
},
{
loader: 'postcss-loader',
options: {
postcssOptions: {
plugins: [
// require('autoprefixer'),
'postcss-preset-env' // 這是個工具包集合,包括autoprefixer
]
}
}
}
]
},
{
test: /\.(png|jpe?g|gif|svg)$/i,
use: {
loader: 'file-loader',
options: {
esModule: false, // 不轉為esModule
name: '[name].[hash:6].[ext]', // 保留原文件名name,加上6位文件hash,ext后綴
outputPath: 'img' // 存放路徑
}
}
}
]
}
}
處理.txt文件
// file.txt
file123
// webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.txt$/i,
use: {
loader: 'raw-loader',
options: {
esModule: false
}
}
}
]
}
}
url-loader處理圖片
module.exports = {
module: {
rules: [
{
test: /\.(png|jpe?g|gif|svg)$/i,
use:
{
loader: 'url-loader',
options: {
esModule: false, // 不轉為esModule
name: '[name].[hash:6].[ext]', // 保留原文件名name,加上6位文件hash,ext后綴
outputPath: 'img', // 存放路徑
limit: 25 * 1024 // 大于25字節不做處理
}
}
}
]
}
}
處理less
module: {
rules: [
{
test: /\.less$/,
use: ['style-loader', {
loader: 'css-loader',
options: {
importLoaders: 1 // 工作時找到其其它css,讓前1個的loader取處理
}
},
{
loader: 'postcss-loader',
options: {
postcssOptions: {
plugins: [
// require('autoprefixer'),
'postcss-preset-env' // 這是個工具包集合,包括autoprefixer
]
}
}
},
"less-loader"
]
}
]
}
原文鏈接:https://blog.csdn.net/qq_36413371/article/details/121263523
相關推薦
- 2022-04-11 架構思維之緩存雪崩的災難復盤_相關技巧
- 2022-04-16 一盤王者的時間用C語言實現三子棋_C 語言
- 2022-12-26 matplotlib畫圖之修改坐標軸刻度問題_python
- 2022-09-12 解決pygal.style的LightColorizedStyle參數問題_python
- 2023-02-15 Android音視頻開發只硬件解碼組件MediaCodec講解_Android
- 2021-12-12 c++虛函數與虛函數表原理_C 語言
- 2023-02-05 如何用C#獲取計算機詳細的軟件和硬件信息_C#教程
- 2022-08-13 Kafka復習計劃 - Kafka基礎知識以及集群參方案和參數
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支