我的编程空间,编程开发者的网络收藏夹
学习永远不晚

fs-extra实现yarncreatetlist创建示例详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

fs-extra实现yarncreatetlist创建示例详解

1.引言

这一篇我们翻版一下 create-vite,将以后整理的项目模板集中管理,方便在需要的时候快速创建使用~

2. 利用fs-extra实现"yarn create tlist"创建项目

资源拷贝我们采用fs-extra模块实现~

2.1 模板资源拷贝:

在模板资源拷贝时部分文件是需要我们特殊处理的,所以这部分文件在资源拷贝时就暂时过滤掉,fs-extra模块中的copySync就提供了过滤文件的功能~

路径匹配的时候我们可以使用path模块中的parse函数转为对象后可以更好的操作~

export const fileIgnore = ['package.json', '_gitignore'];
fsExtra.copySync(templateDir, targetDir, {
  filter: (class="lazy" data-src, dest) => {
    return !fileIgnore.find(
      (f) => f === `${path.parse(class="lazy" data-src).name}${path.parse(class="lazy" data-src).ext}`
    );
  },
});

2.2 文本文件拷贝:

_gitignore文件需要再输出时进行重命名操作,但没有找到可以直接实现重命名的函数,所以就通过分别读写两步实现。普通文本文件使用fs-extra模块中的readFileSync读取,在输出到新文件名的文件中~

const gitignoreInfo = fsExtra.readFileSync(
  path.resolve(templateDir, "_gitignore")
);
fsExtra.outputFile(path.join(root, ".gitignore"), gitignoreInfo);

2.3 JSON 文件拷贝:

package.json 读取后我们需要重写内容后再输出,fs-extra模块中的readJsonSync函数可以直接读取为 JSON 对象,我们在修改对象后再次通过outputJSONSync输出 JSON 对象即可,在outputJSONSync提供的选项中指定spaces=2输出非在一行的 JSON 文件~

const pkg = fsExtra.readJsonSync(path.resolve(templateDir, "package.json"));
pkg.name = packageName || getProjectName();
fsExtra.outputJSONSync(path.join(root, "package.json"), pkg, {
  spaces: 2,
});

3. 总结

"yarn create tlist"的主要逻辑除去参数的收集以外就是模板的拷贝两块了,这里通过利用fs-extra实现了模板拷贝,fs-extra函数的支持还是挺不错的,拷贝文件还考虑到了支持过滤的功能,挺不错~

本文项目已推送至GitHub:

git clone git@github.com:OSpoon/create-tlist.git

以上就是fs-extra实现yarn create tlist创建示例详解的详细内容,更多关于fs-extra创建yarn create tlist项目的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

fs-extra实现yarncreatetlist创建示例详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

fs-extra实现yarncreatetlist创建示例详解

这篇文章主要为大家介绍了fs-extra实现yarncreatetlist创建示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-01-11

静态pod创建使用示例详解

这篇文章主要为大家介绍了静态pod创建使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-11-13

详解eclipse创建maven项目实现动态web工程完整示例

本文介绍了eclipse创建maven项目实现动态web工程完整示例,分享给大家。具体如下:需求表均同springmvc案例此处只是使用maven注意,以下所有需要建立在你的eclipse等已经集成配置好了maven了,说白了就是新建项目的
2023-05-30

File.createTempFile创建临时文件的示例详解

File.createTempFile是Java中用来创建临时文件的方法,它返回一个File对象,表示创建的临时文件。下面是一个示例详解:```javaimport java.io.File;import java.io.IOExcepti
2023-08-16

LongAdder原理及创建使用示例详解

这篇文章主要为大家介绍了LongAdder原理及创建使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-01-13

mysql创建表分区的实现示例

MySQL分区是一种将表数据划分为多个逻辑部分的技术,可以提升查询性能、便于数据管理和增强数据安全性。通过使用不同的分区函数,如RANGE、LIST或HASH,可以按范围、离散值或哈希值对数据进行分区。创建分区表只需使用合适的语法,并根据数据分布和查询需求选择分区函数和分区数量。为了优化性能和管理,分区应定期受到监控,并根据需要进行调整。
mysql创建表分区的实现示例
2024-04-02

mysql创建表分区的实现示例

目录1. 基本概念1.1 什么是表分区?1.2 表分区与分表的区别1.3 表分区有什么好处?1.4 分区表的限制因素2. 如何判断当前mysql是否支持分区?3.分区类型详解3.1 MySQL支持的分区类型有哪些?3.2 RANGE分区3.
mysql创建表分区的实现示例
2024-01-29

Android Fragment动态创建详解及示例代码

Android Fragment 动态创建 Fragment是activity的界面中的一部分或一种行为。可以把多个Fragment组合到一个activity中来创建一个多界面并且可以在多个activity中重用一个Fragment。可以把
2022-06-06

Android 逐帧动画创建实例详解

Android 逐帧动画创建实例详解前言:我们看早期电影的时候,电影通常是一张一张播放,用我们现在专有名词来说,就是一帧帧来,安卓同样有这样动画效果的编排形式。那么我们先定义逐帧动画xml文件
2023-05-30

Java创建表格实例详解 原创

表格是最常用的数据统计形式之一,在 swing 中 由 JTable 类实现表格。接下来,我们看看怎么利用 JTable 创建表格。 在 JTable 类中除了默认的构造方法外,还提供了利用指定表格列名数组和表
2023-05-31

Python中创建对象列表的实现示例

本文主要介绍了Python中创建对象列表的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-03-14

c#实现flv解析详解示例

下面是一个使用C#实现FLV解析的示例代码:```csharpusing System;using System.IO;public class FLVParser{private static readonly int FLV_HEADE
2023-08-16

Java实现FutureTask的示例详解

在并发编程当中我们最常见的需求就是启动一个线程执行一个函数去完成我们的需求,而在这种需求当中,我们需要函数有返回值。Java给我们提供了这种机制,去实现这一个效果:FutureTask。本文为大家准备了Java实现FutureTask的示例代码,需要的可以参考一下
2022-11-13

编程热搜

目录