简介
cpy
是一款基于 Node.js 的命令行工具和 API,用于复制文件和目录。它提供了强大的过滤器功能,可以灵活地控制复制过程,并支持诸如通配符匹配、正则表达式等功能。
安装
使用 npm
安装 cpy
:
npm install cpy --save-dev
命令行用法
基本用法
cpy <source> <destination>
将 source
目录或文件复制到 destination
目录或文件。例如:
# 复制 a.txt 到 b.txt cpy a.txt b.txt # 复制 src 目录到 dest 目录 cpy src dest
过滤器
cpy
支持多种过滤器,可用于选择需要复制的文件或排除不需要复制的文件。以下是一些常见的过滤器:
忽略指定文件/目录
# 忽略 .gitignore 文件 cpy src dest --ignore-file=.gitignore # 忽略 node_modules 目录 cpy src dest --ignore=node_modules/**
仅复制指定文件类型
# 仅复制 png 文件 cpy src/**/*.png dest # 复制 js 和 css 文件 cpy src/**/*.{js,css} dest
排除指定文件类型
# 排除 png 文件 cpy src/**/*(!(*.png)) dest # 排除 js 和 css 文件 cpy src/**/!(*.js|*.css) dest
使用正则表达式匹配文件名
# 复制所有以数字结尾的文件(如 1.txt, 100.jpg) cpy src dest --rename='/\d$/'
其他选项
cpy
提供了许多其他选项,例如:
-v/--verbose
: 显示详细日志信息。-n/--no-overwrite
: 不覆盖已存在的目标文件。-u/--update
: 只复制新的或更新的文件。-S/--size-only
: 仅比较文件大小而不比较时间戳。
API 用法
cpy
还提供了 API 用于程序化调用。以下是一些常见的 API 用法:
基本用法
const cpy = require('cpy'); // 复制 a.txt 到 b.txt cpy('a.txt', 'b.txt'); // 复制 src 目录到 dest 目录 cpy('src/*', 'dest');
过滤器
cpy
API 支持与命令行相同的过滤器功能,例如:
// 忽略 .gitignore 文件 cpy('src/*', 'dest', { ignoreFile: '.gitignore' }); // 复制 png 文件 cpy('src/**/*.png', 'dest'); // 排除 js 和 css 文件 cpy('src/**/!(*.js|*.css)', 'dest');
其他选项
cpy
API 也支持与命令行相同的其他选项,例如:
// 不覆盖已存在的目标文件 cpy('src/*', 'dest', { overwrite: false }); // 只复制新的或更新的文件 cpy('src/*', 'dest', { update: true }); // 仅比较文件大小而不比较时间戳 cpy('src/*', 'dest', { sizeOnly: true });
总结
cpy
是一款非常实用的工具,可以帮助前端开发者轻松地复制文件和目录,并提供了强大的过滤器功能。通过掌握命令行和 API 的用法,我们可以更加灵活地使用 cpy
,提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/40028