如何批量引用指令碼

2021-10-02 01:41:52 字數 938 閱讀 2658

背景

使用 h5 開發大型應用程式時,必然會遇到頁面需要載入大量指令碼的需求。這些指令碼通常可以按特定單位,如:區域性模組,劃分成多組。從解耦的角度上,我們可能需要在頁面上宣告模組引用,然後交由工具自動引入模組的內部指令碼。形如下圖所示:

.jsref 檔案是自定義的,代表指令碼引用集合的 html 檔案

實現

借助 node.js,上述訴求並不難實現:

確定 jsref 檔案的引用語法,例如:掃瞄 html 正文,根據語法確定 jsref 檔案

解析 jsref 檔案,使用檔案正文替換 html 中的 jsref 宣告字串

使用處理後的 html 正文生成構建後的 html 檔案

這樣的確能實現我們的主要目的,但關聯的,還有開發便利性上的訴求:

html 檔案使用相對路徑引用 jsref 檔案

jsref 檔案使用相對路徑引用模組內的 js 檔案

可以在 jsref 檔案中巢狀引用 jsref 檔案

這就需要構建環節進行額外的處理動作:

引入檔案正文時,動態調整正文中指令碼的引用路徑,使其最終以相對於 html 檔案的方式被引用

不僅指令碼的script標籤有此類需求,imgvideoaudiolink,source等標籤也同樣需要支援引用路徑的動態調整。

外掛程式對於上述訴求,gulp-resolve-import 外掛程式都能夠很好地滿足,甚至支援開發者有條件地執行引入動作。

有興趣的同學可以試一試。

mysql 指令碼批量 Mysql中如何批量生成指令碼

mysql中如何批量生成指令碼 root sql21 mysql u root welcome to the mysql monitor.commands end with or g.your mysql connection id is 3 to server version 5.1.26 rc ...

如何使用cacti指令碼批量新增主機

使用指令碼新增的時候遇到下面的錯誤。root sjswt44 122 cli php q add device.php description user1.db ip user1.db.d.xiaonei.com template 11 php notice use of undefined con...

批量pingIP指令碼

方法一 將ip位址寫入ip.txt root localhost cat ping.sh bin bash cat ip.txt while read line doip echo line awk ping c 3 w 2 ip dev null if eq 0 then echo ip live...