1.0.6 • Published 10 months ago

mv-file v1.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
10 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

10 months ago

1.0.5

10 months ago

1.0.4

10 months ago

1.0.3

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago

0.0.1

10 months ago

0.0.2

5 years ago