1.0.6 • Published 8 months ago

mv-file v1.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

mv-file

version codecov release node.js license

English | 中文

简单灵活的 文件/目录 移动工具,支持 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

配置选项

属性类型默认值说明
cwdstringprocess.cwd()当前工作目录
basestring源基础目录
deststring目标基础目录
forcebooleanfalse是否强制覆盖已存在的文件
cleanbooleanfalse是否清理空目录
verbosebooleanfalse启用详细日志
concurrencynumber4最大并发操作数

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 来改进这个工具!

1.0.6

8 months ago

1.0.5

8 months ago

1.0.4

8 months ago

1.0.3

8 months ago

1.0.2

8 months ago

1.0.1

8 months ago

1.0.0

8 months ago

0.0.1

9 months ago

0.0.2

5 years ago