@iyowei/create-esm
Version:
这是一个命令行工具,给到 ESM 源码文件路径后,自动创建一个项目、打包、发布,确保一个指令即可在项目中安装使用,进而支持跨项目使用。
34 lines (29 loc) • 879 B
JavaScript
import { copy } from 'fs-extra';
export const TASK_NAME_COPY = '拷贝文件';
// TODO: 使用 "模板方法模式" 组织代码
// TODO: 解析文件中的依赖,检查是否有相对路径对应的文件并不在拷贝列表内
// TODO: 单独实现 `copy` 方法,移除对 "fs-extra" 的依赖
export default {
name: TASK_NAME_COPY,
async excute({ ctx, task }) {
if (!ctx.error) {
await Promise.all(
ctx.payload.get('copiers').map(
(cur) =>
new Promise((resolve, reject) => {
copy(cur.source, cur.output, (err) => {
if (err) {
reject(err);
return;
}
resolve(true);
});
}),
),
);
task.title = '已拷贝完所有文件';
} else {
task.skip('未能拷贝');
}
},
};