摘要:多次加載同一目錄時,第一次加載的結(jié)果會進(jìn)行緩存,以后再次使用去該目錄的時候會直接拿到緩存的對象而不會再次利用去讀取該目錄。
代碼在 這里
用法:因為沒有發(fā)布到npm,所以就把這個文件里面的代碼拷貝下來自己建一個模塊,比如叫require-dir.js
const requireDir = require("path/to/require-dir")
第一個參數(shù)固定為__dirname,第二個參數(shù)為需要require的目錄。
多次加載同一目錄時,第一次加載的結(jié)果會進(jìn)行緩存,以后再次使用requireDir去require該目錄的時候會直接拿到緩存的對象而不會再次利用fs去讀取該目錄。
假設(shè)目錄結(jié)構(gòu)如下:
|_src | |_lalala | |_wxdir | | |_event.js | | |_other-thing.js | |_user.js
一. 樹狀結(jié)構(gòu)
將整個目錄中所有的js模塊進(jìn)行迭代,返回一個對象,對象的屬性結(jié)構(gòu)和目錄結(jié)構(gòu)一致,如果文件夾或者文件名中有非字母數(shù)字的字符,其對應(yīng)的對象屬性中則會移除該字符并且以其作為分隔進(jìn)行駝峰式命名,如下面的other-thing.js
const lalala = requireDir(__dirname, "path/to/lalala")
lalala的結(jié)構(gòu)為,
{ user: require("path/to/user.js") wxdir: { event: require("path/to/event.js"), otherThing: require("path/to/other-thing.js") } }
二. 平行結(jié)構(gòu)
1.依然將整個目錄的js進(jìn)行迭代,只不過返回的對象不是樹狀結(jié)構(gòu),而是將它與傳入路徑的相對路徑進(jìn)行分割和駝峰式命名
const lalala2 = require(__dirname, "path/to/lalala", true)
lalala2的結(jié)構(gòu)為
{ user: require("path/to/user.js"), wxdirEvent: require("path/to/event.js"), wxdirOtherThing: require("path/to/other-thing.js") }
2.自定義命名規(guī)則,第三個參數(shù)可以傳入一個對象{ nameHandler: func },func的唯一參數(shù)是一個字符串,返回值還是字符串,requireDir返回的對象的屬性則是原本的熟悉傳入func后的返回值
const lalala3 = require(__dirname, "path/to/lalala", { nameHandler: i => `$${i}` })
lalala3的結(jié)構(gòu)為
{ $user: require("path/to/user.js"), $wxdirEvent: require("path/to/event.js"), $wxdirOtherThing: require("path/to/other-thing.js") }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/80592.html
摘要:更改文件名之后,在文件中寫入的代碼??刂圃黾忧熬Y的版本根據(jù)頁面中的標(biāo)簽及標(biāo)簽中的選擇器屬性,來精簡樣式。 項目地址 既然重新學(xué)習(xí)了 Gulp,那索性就再把以前用 Gulp 寫的東西拿出來,重新寫一遍。這次寫的時候要把要點記錄下來,不然以后忘了就沒法回憶了。 因為 Gulp 現(xiàn)在使用沒有以前那么多了,所以就不寫復(fù)雜的應(yīng)用了。這次寫一個簡單的 Demo 處理工具,只是為了把 PSD 轉(zhuǎn)成 ...
摘要:注僅做記錄使用又不舍得刪除推薦使用相關(guān)資料很多的運行環(huán)境構(gòu)建基于全局安裝安裝過程略配置的淘寶鏡象全局安裝官方腳手架工具官網(wǎng)文檔創(chuàng)建項目基于模板創(chuàng)建創(chuàng)建配置按需,我除了安裝之外其他都選了運行與打包測試安裝依賴包運行打包配 注(2018-2-12):僅做記錄使用,又不舍得刪除,推薦使用koa2,koa2相關(guān)資料很多的~ 1. 運行環(huán)境構(gòu)建(基于macOS Sierra 10.12.4) ...
摘要:另外一個道理,一部分是依賴另一部分的,比如依賴文件的載入。其實主要做的事情就是這兩點。這里只是我虛構(gòu)一個假的例子,實際應(yīng)用中要根據(jù)自己的實際需求去設(shè)計構(gòu)思自己的項目,再次提醒,不要為了用而用。 前言 提到require.js大多數(shù)人會說提到模塊化開發(fā),AMD等等,其實require.js并沒有這么多復(fù)雜的概念,這里我就希望排除這些概念,從實用的角度來簡單說一下require.js是干...
摘要:編寫異步小爬蟲在通過的課程初步了解的各大模塊之后,不禁感慨于的強大,讓我們這些前端小白也可以進(jìn)行進(jìn)階的功能實現(xiàn),同時發(fā)現(xiàn)自己也已經(jīng)可以通過實現(xiàn)一些比較日常的小功能。 nodejs編寫異步小爬蟲 在通過learnyounode的課程初步了解nodejs的各大模塊之后,不禁感慨于nodejs的強大,讓我們這些前端小白也可以進(jìn)行進(jìn)階的功能實現(xiàn),同時發(fā)現(xiàn)自己也已經(jīng)可以通過nodejs實現(xiàn)一些...
閱讀 3243·2021-11-23 09:51
閱讀 3701·2021-09-22 15:35
閱讀 3675·2021-09-22 10:02
閱讀 2989·2021-08-30 09:49
閱讀 550·2021-08-05 10:01
閱讀 3416·2019-08-30 15:54
閱讀 1693·2019-08-30 15:53
閱讀 3586·2019-08-29 16:27