網(wǎng)站首頁 編程語言 正文
多個文件導(dǎo)入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執(zhí)行順序是從后往前執(zhí)行
處理base.css:
- postcss-loader通過postcss-preset-env插件對base.css進行加前綴等兼容處理
- 執(zhí)行css-loader發(fā)現(xiàn)@import引入的文件,importLoaders: 1交給前面一個loader(postcss-loader)處理
// css-loader可以處理 import / require的文件, 得到樣式的數(shù)組- style-loader 將樣式處理得到style標(biāo)簽
處理import/require引入的圖片
import importImg from '../assets/xx.png' // import導(dǎo)入
function packageImage() {
// let img = require('../assets/xx.png').default // require導(dǎo)入
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 // 不轉(zhuǎn)為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, // 不轉(zhuǎn)為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, // 不轉(zhuǎn)為esModule
name: '[name].[hash:6].[ext]', // 保留原文件名name,加上6位文件hash,ext后綴
outputPath: 'img', // 存放路徑
limit: 25 * 1024 // 大于25字節(jié)不做處理
}
}
}
]
}
}
處理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
相關(guān)推薦
- 2022-05-22 Nginx安裝后常用功能配置基礎(chǔ)篇_nginx
- 2022-05-18 C語言程序環(huán)境和預(yù)處理詳解分析_C 語言
- 2022-06-06 typescript中abstractClass(抽象類)、extends、abstract
- 2022-07-11 MongoDB分片方式及片鍵選擇
- 2022-11-22 python枚舉類型定義與使用講解_python
- 2022-04-17 spring cloud config和bus組件實現(xiàn)自動刷新
- 2023-02-02 C++調(diào)用matlab引擎實現(xiàn)三維圖的繪制_C 語言
- 2023-04-12 Pandas創(chuàng)建DataFrame提示:type?object?'object'?has?no?at
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支