欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

fs-extra實現(xiàn)yarn?create?tlist創(chuàng)建示例詳解

 更新時間:2023年01月11日 08:51:00   作者:小鑫同學  
這篇文章主要為大家介紹了fs-extra實現(xiàn)yarn?create?tlist創(chuàng)建示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

1.引言

這一篇我們翻版一下 create-vite,將以后整理的項目模板集中管理,方便在需要的時候快速創(chuàng)建使用~

2. 利用fs-extra實現(xiàn)"yarn create tlist"創(chuàng)建項目

資源拷貝我們采用fs-extra模塊實現(xiàn)~

2.1 模板資源拷貝:

在模板資源拷貝時部分文件是需要我們特殊處理的,所以這部分文件在資源拷貝時就暫時過濾掉,fs-extra模塊中的copySync就提供了過濾文件的功能~

路徑匹配的時候我們可以使用path模塊中的parse函數(shù)轉為對象后可以更好的操作~

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

2.2 文本文件拷貝:

_gitignore文件需要再輸出時進行重命名操作,但沒有找到可以直接實現(xiàn)重命名的函數(shù),所以就通過分別讀寫兩步實現(xiàn)。普通文本文件使用fs-extra模塊中的readFileSync讀取,在輸出到新文件名的文件中~

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

2.3 JSON 文件拷貝:

package.json 讀取后我們需要重寫內(nèi)容后再輸出,fs-extra模塊中的readJsonSync函數(shù)可以直接讀取為 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"的主要邏輯除去參數(shù)的收集以外就是模板的拷貝兩塊了,這里通過利用fs-extra實現(xiàn)了模板拷貝,fs-extra函數(shù)的支持還是挺不錯的,拷貝文件還考慮到了支持過濾的功能,挺不錯~

本文項目已推送至GitHub:

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

以上就是fs-extra實現(xiàn)yarn create tlist創(chuàng)建示例詳解的詳細內(nèi)容,更多關于fs-extra創(chuàng)建yarn create tlist項目的資料請關注腳本之家其它相關文章!

相關文章

  • Nest.js 之依賴注入原理及實現(xiàn)過程詳解

    Nest.js 之依賴注入原理及實現(xiàn)過程詳解

    這篇文章主要為大家介紹了Nest.js 之依賴注入原理及實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • 微信小程序 上傳頭像的實例詳解

    微信小程序 上傳頭像的實例詳解

    這篇文章主要介紹了微信小程序 上傳頭像的實例詳解的相關資料,希望通過本文能幫助到大家,讓大家實現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • JS?class語法糖的深入剖析

    JS?class語法糖的深入剖析

    這篇文章主要為大家介紹了JS?class語法糖的深入剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • javascript的setTimeout()使用方法總結

    javascript的setTimeout()使用方法總結

    這篇文章主要給大家分享javascript的setTimeout()使用方法總結,js的setTimeout方法用處比較多,通常用在頁面刷新了、延遲執(zhí)行了等等,下面我們一起來看看文章對該內(nèi)容的具體總結吧,需要的朋友可以參考一下
    2021-11-11
  • 微信小程序  網(wǎng)絡請求API詳解

    微信小程序 網(wǎng)絡請求API詳解

    這篇文章主要介紹了微信小程序 網(wǎng)絡請求API詳解的相關資料,需要的朋友可以參考下
    2016-10-10
  • Evil.js項目源碼解讀

    Evil.js項目源碼解讀

    這篇文章主要為大家介紹了最近火爆全網(wǎng)的?Evil.js?源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 前端可視化搭建組件值與聯(lián)動實現(xiàn)詳解

    前端可視化搭建組件值與聯(lián)動實現(xiàn)詳解

    這篇文章主要為大家介紹了前端可視化搭建組件值與聯(lián)動實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • 微信小程序(十六)form組件詳細介紹

    微信小程序(十六)form組件詳細介紹

    這篇文章主要介紹了微信小程序form組件詳細介紹的相關資料,需要的朋友可以參考下
    2016-09-09
  • 基于JavaScript代碼實現(xiàn)微信掃一掃下載APP

    基于JavaScript代碼實現(xiàn)微信掃一掃下載APP

    有很多人在做微信的掃一掃下載。但是在微信更新之后微信將該功能給禁止掉了,也不能說是全面禁止吧,因為騰訊、微信是一家嘛,通過應用寶審核的應用好像還是可以通過掃一掃直接下載的,下面通過本篇文章給大家介紹微信掃一掃下載app的代碼片段,感興趣的朋友一起看看吧
    2015-12-12
  • 微信小程序 數(shù)據(jù)訪問實例詳解

    微信小程序 數(shù)據(jù)訪問實例詳解

    這篇文章主要介紹了微信小程序 數(shù)據(jù)訪問實例詳解的相關資料,需要的朋友可以參考下
    2016-10-10

最新評論