https://github.com/coder-hxl/batch-handle-resource
batch-handle-resource
https://github.com/coder-hxl/batch-handle-resource
Last synced: 3 months ago
JSON representation
batch-handle-resource
- Host: GitHub
- URL: https://github.com/coder-hxl/batch-handle-resource
- Owner: coder-hxl
- Created: 2024-06-25T12:40:49.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-05T03:20:30.000Z (7 months ago)
- Last Synced: 2025-02-15T05:16:57.835Z (4 months ago)
- Language: TypeScript
- Size: 48.8 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# batch-handle-resource
用于批量处理资源。
- transformImage 批量图片处理
- replaceFileContent 批量文件替换内容
- matcher 自定义处理匹配到的文件### transformImage
批量图片处理
#### 参数
##### TransformImage
| 选项 | 类型 | 描述 |
| ------------------- | ------- | ---------------------- |
| entry | string | 图片入口目录 |
| output | string | 图片出口目录 |
| rules | Rule[] | 匹配图片规则 |
| useFile | UseFile | 匹配被文件内用到的图片 |
| mkdir | boolean | 是否创建文件夹 |
| logFileGeneratePath | string | 日志文件存储路径 |
| itemLog | boolean | 是否将每项的路径打印 |##### Rule
| 选项 | 类型 | 描述 |
| ------ | -------------- | -------------- |
| name | 'png' or 'jpg' | 匹配的图片格式 |
| format | Format | 如何处理 |#### Format
| 选项 | 类型 | 描述 |
| ------ | ---------------------------------------------------------------------------------------------------------- | ---------------- |
| name | 'webp' or 'svg' | 要转变的图片格式 |
| max | number | 图片的最大体质 |
| min | number | 图片的最小体积 |
| handle | (info: { rawName: R, formatName: F, entryPath: string, outputPath: string, size: number }) => Promise | 处理函数 |#### UseFile
| 选项 | 类型 | 描述 |
| ---------------- | ---------------- | ------------------ |
| dir | string | 文件入口目录 |
| imageInFileAlias | Record | 图片在文件内的别名 |### replaceFileContent
批量文件替换内容
#### 参数
##### ReplaceFileContent
| 选项 | 类型 | 描述 |
| ------------------- | ------------- | -------------------- |
| entry | string | 文件入口目录 |
| list | ReplaceInfo[] | 替换选项 |
| logFileGeneratePath | string | 日志文件存储路径 |
| itemLog | boolean | 是否将每项的路径打印 |##### ReplaceInfo
| 选项 | 类型 | 描述 |
| ------------ | ------ | ------ |
| searchValue | string | 匹配值 |
| replaceValue | List | 替换值 |### matcher
自定义处理匹配到的文件。用法跟 webpack 相似。
**示例**
以更新大量组件的路径和 props 为例:
```ts
import matcher, {
filterByContent,
insertToLastImport,
replaceContent
} from '/src/matcher'matcher({
entry: 'e:/HXL/工具/batch-handle-resource/test/data',
rules: [
{
// 匹配 entery 文件夹下所有的 js 文件
match: /\.js$/,
use: [
// filterByContent 用于过滤掉不存在该内容的文件
filterByContent("import Header from 'src/components/Header/Header'"),
// insertToLastImport 用于将该内容插入到最后一个 import 语句下面
insertToLastImport(
"import { headerDictionaries } from 'src/components/i18n/header/config/i18n/en'"
),
// replaceContent 用于将替换文件内容
replaceContent(
[
{
searchValue: "import Header from 'src/components/Header/Header'",
replaceValue: "import Header from 'src/components/i18n/header'"
},
{
searchValue: '',
replaceValue:
''
}
],
true
)
]
}
]
})
```