mv-file
v1.0.5
Published
A simple and flexible utility for moving files and directories with support for glob patterns, concurrent operations, and event handling.
Downloads
330
Maintainers
Readme
mv-file
简单灵活的 文件/目录 移动工具,支持 glob
模式匹配、并发操作和事件处理。
Features
- 🎯 支持
Glob
模式匹配 - 📂 设定目录结构
- 🚀 并发文件操作
- 🎭 监听操作事件
- 🧹 支持清理空目录
Installation
npm install mv-file
Usage
moveFile
import { moveFile } from 'mv-file'
// 移动文件
await moveFile(
{
'src/html/': 'dist'
'src/file.txt': 'dist/file.txt',
'src/**/*.js': 'dist/js',
},
{
force: true,
clean: true,
}
)
createFileMover
import { createFileMover } from 'mv-file'
// 创建操作实例
const mover = createFileMover({
force: true, // 强制覆盖已存在的文件
clean: true, // 清理空目录
base: 'src',
dest: 'dist',
})
// 移动文件
await mover.move({
'src/js/**/*.js': 'dist/',
})
// => dist/js/**/*.js
// 监听事件
mover.on('copy:start', (source, target) => {
console.log(`开始复制: ${source} -> ${target}`)
})
mover.on('copy:done', (source, target) => {
console.log(`复制完成: ${source} -> ${target}`)
})
mover.on('error', (error) => {
console.error('操作失败:', error.message)
})
API
import { moveFile, createFileMover } from 'mv-file'
// 移动文件
moveFile(pathMap: PathMapping, options?: MoveOptions): Promise<void>
// 创建操作实例
const mover = createFileMover(options?: MoveOptions): FileMover
// 移动文件
mover.move(pathMap: PathMapping): Promise<void>
PathMapping
路径映射表
- 键:源文件路径
- 值:目标文件路径
interface PathMapping {
[source: string]: string
}
MoveOptions
配置选项
| 属性 | 类型 | 默认值 | 说明 |
| ------------- | --------- | --------------- | ------------------------ |
| cwd
| string
| process.cwd()
| 当前工作目录 |
| base
| string
| | 源基础目录 |
| dest
| string
| | 目标基础目录 |
| force
| boolean
| false
| 是否强制覆盖已存在的文件 |
| clean
| boolean
| false
| 是否清理空目录 |
| verbose
| boolean
| false
| 启用详细日志 |
| concurrency
| number
| 4
| 最大并发操作数 |
FileMover 类
Methods
move(pathMap: PathMapping): Promise<void>
根据提供的路径映射移动文件。
Event
FileOperator 继承自 EventEmitter,提供以下事件:
| 事件 | 参数 | 说明 |
| ------------- | ---------------------------------- | -------------- |
| copy:start
| (source: string, target: string)
| 开始copy时触发 |
| copy:done
| (source: string, target: string)
| 完成copy时触发 |
| clean:start
| (path: string)
| 开始清理时触发 |
| clean:done
| (path: string)
| 完成清理时触发 |
| error
| (error: FileMoverError)
| 发生错误时触发 |
FileMoverError
使用自定义的 FileMoverError
类进行错误处理:
class FileMoverError extends Error {
code: string
source?: string
target?: string
originalError?: Error
}
License
MIT
贡献
欢迎提交 Pull Request 来改进这个工具!