Global

Methods

addVersion(fnPks)

Description:
  • 自動添加package.json內版本補丁號

Source:
Parameters:
Name Type Default Description
fnPks String ./package.json

輸入package.json位置路徑字串

(async) extractHtml(optopt)

Description:
  • 產生瀏覽範例用的html檔

Source:
Parameters:
Name Type Attributes Default Description
opt Object <optional>
{}

輸入設定物件,預設{}

Properties
Name Type Attributes Default Description
htmlLang String <optional>
'zh-tw'

輸入所產生html的lang字串,預設'zh-tw'

title String <optional>
''

輸入標題字串,預設''

head String <optional>
''

輸入head內額外html字串,預設''

appTag String <optional>
''

輸入app使用標記字串,預設'div'

appClass String <optional>
''

輸入app的class字串,預設''

appStyle String <optional>
''

輸入app的style字串,預設''

appTmp String <optional>
''

輸入app的html字串,預設''

installVue String <optional>
''

輸入註冊vue組件的js程式碼字串,預設''

newVue String <optional>
''

輸入初始化(new Vue)內額外設定字串,預設''

data String <optional>
'function(){return {}}'

輸入初始化(new Vue)時的data設定字串,預設'function(){return {}}'

mounted String <optional>
'function(){}'

輸入初始化(new Vue)時的mounted設定字串,預設'function(){}'

computed String <optional>
'{}'

輸入初始化(new Vue)時的computed設定字串,預設'{}'

methods String <optional>
'{}'

輸入初始化(new Vue)時的methods設定字串,預設'{}'

action String <optional>
'[]'

輸入執行測試腳本action設定字串,預設''

procHtml function <optional>
null

輸入呼叫處理html函數,為html重新排版前呼叫,函數輸入為當前html,回傳處理後html,預設null

fpHtml String <optional>
''

輸入寫入html之檔案位置字串,預設''

fpAction String <optional>
''

輸入寫入action之檔案位置字串,預設''

getPks(fnopt) → {Object}

Description:
  • 取得package.json資料物件

Source:
Parameters:
Name Type Attributes Default Description
fn String <optional>
'./package.json'

輸入package.json路徑字串

Returns:

回傳資料物件

Type
Object

getReadme(fnopt) → {Object}

Description:
  • 讀取readme資料物件

Source:
Parameters:
Name Type Attributes Default Description
fn String <optional>
'./README.md'

輸入readme檔案路徑字串

Returns:

回傳readme資料物件

Type
Object

modifyReadme(fnRMopt)

Description:
  • 更新readme內cdn連結為最新版本

Source:
Parameters:
Name Type Attributes Default Description
fnRM String <optional>
'./README.md'

輸入readme檔案路徑字串

(async) parfor(fpWorker, jobs, optopt) → {Promise}

Description:
  • 輕量持久 worker pool 平行執行器,用原生 worker_threads 把 CPU 密集計算分散到多核心,免任何編譯步驟

    機制: · 免編譯 ESM worker:new Worker(URL)直接跑 .mjs 檔,worker 內可正常 import 專案模組與 node_modules。 · 持久 pool:每個 worker 只建立一次(import core、模組級預計算、initData 注入都只付一次),跑完整批工作才 terminate;對比「每批新建 worker + eval bundle」省去重複啟動 / 解析 / 預計算成本。 · 動態派工:閒置的 worker 自動領取下一個 job(內建負載均衡,不需 caller 預先平衡 job 順序)。 · lifecycle 對稱:全部完成(或失敗)一律 terminate 所有 worker,直跑 node 不會 hang。

    worker 協定(worker entry 檔須遵守):

    1. 經 workerData 收 initData(一次)。
    2. 收 { k, job } → 計算 → 回 { k, r }。
    3. 單 job 失敗回 { k, err }(err 為字串)→ 不炸批,主程序印錯後續跑。
    4. worker 載入 / init 失敗(import 錯、workerData 處理 throw)→ 整批 fail-fast 拋錯(不默跑)。

    適用:CPU 密集的純計算(大量迴圈、數值運算、回測撮合),且工作可拆成多個彼此獨立的 job 不適用:I/O 密集任務(讀檔、網路請求),這類用單執行緒 Promise 並行即可,開 worker 反而多付啟動與傳輸成本

Source:
Parameters:
Name Type Attributes Default Description
fpWorker String | URL

輸入 worker entry 之 file URL(建議 new URL('./xxx_worker.mjs', import.meta.url))或絕對路徑字串

jobs Array

輸入工作陣列,每個 job 經 postMessage 結構化複製傳入 worker

opt Object <optional>
{}

輸入設定物件,預設 {}

Properties
Name Type Attributes Default Description
takeLimit Integer <optional>
os.availableParallelism()-1

輸入同時 worker 數正整數,至少 1,預設 os.availableParallelism()-1

initData * <optional>

輸入經 workerData 一次性注入每個 worker 的共享唯讀資料,結構化複製,支援 TypedArray

cb function <optional>
null

輸入每個 job 完成即時回呼函數,簽名為 cb(r, k),r 為該 job 回傳值、k 為 job 索引,job 失敗時 r 為 undefined(錯誤已印出,不中斷整批),預設 null

returnResult Boolean <optional>
false

輸入是否回傳 results 陣列布林值,true 時依 job 索引對位回傳,預設 false(省記憶體,結果由 cb 收)

Returns:

回傳 Promise,resolve 時:opt.returnResult 為 true 回傳 results 陣列(依 job 索引對位),否則回傳 undefined

Type
Promise

(async) rollupCode(codeSrc, opt)

Description:
  • 使用rollup轉譯程式碼

Source:
Parameters:
Name Type Description
codeSrc String

輸入程式碼字串

opt Object

輸入設定物件

Properties
Name Type Attributes Default Description
name String

輸入模組名稱字串

formatIn String <optional>
'js'

輸入待轉譯程式碼格式字串,可選'js'、'mjs',預設'js'

formatOut String <optional>
'umd'

輸入欲轉譯成js格式字串,可選'umd'、'iife'、'es',預設'umd'

targets String <optional>
'old'

輸入轉譯等級字串,可選'new'、'old',預設'old'

runin String <optional>
'browser'

輸入執行環境字串,可選'nodejs'、'browser',預設'browser'

bNodePolyfill Boolean <optional>
false

輸入轉譯是否自動加入Nodejs polyfill布林值,主要把Nodejs語法(例如fs)轉為瀏覽器端語法,預設false

bMinify Boolean <optional>
true

輸入轉譯是否進行壓縮布林值,預設true

keepFnames Boolean <optional>
false

輸入當轉譯需壓縮時,是否保留函數名稱布林值,預設false

mangleReserved Array <optional>
[]

輸入當轉譯需壓縮時,需保留函數名稱或變數名稱陣列,預設[]

mainFields Array <optional>
null

輸入取用套件內環境入口時,可強制給予循序入口陣列,各入口可選'browser'、'module'、'main',給予null則代表用rollup內建,預設null

globals Object <optional>
{}

輸入指定內外模組的關聯性物件,預設{}

external Array <optional>
[]

輸入指定內部模組需引用外部模組陣列,預設[]

bLog Boolean <optional>
true

輸入是否顯示預設log布林值,預設true

(async) rollupFile(opt)

Description:
  • 使用rollup轉譯檔案

Source:
Parameters:
Name Type Description
opt Object

輸入設定物件

Properties
Name Type Attributes Default Description
fn String

輸入原始碼檔案名稱字串,檔案需含副檔名,不含所在資料夾

fdSrc String <optional>
'./'

輸入原始碼檔案所在資料夾字串,預設'./'

fdTar String <optional>
''

輸入轉譯檔案至儲存資料夾字串,預設''

nameDistType String <optional>
''

輸入轉譯檔案名稱格式字串,可選'kebabCase',預設''

hookNameDist function <optional>
null

輸入強制指定轉譯檔案名稱函數,預設null,會複寫nameDistType之處理結果

format String <optional>
'umd'

輸入轉譯格式字串,可選'umd'、'iife'、'es',預設'umd'

targets String <optional>
'old'

輸入轉譯等級字串,可選'new'、'old',預設'old'

ext String <optional>
'js'

輸入轉譯檔案副檔名字串,可選'js'、'mjs',預設'js'

bSourcemap Boolean <optional>
true

輸入轉譯檔案是否提供sourcemap布林值,預設true

bBanner Boolean <optional>
true

輸入轉譯檔案是否帶有開頭banner布林值,預設true

runin String <optional>
'browser'

輸入執行環境字串,可選'nodejs'、'browser',預設'browser'

bNodePolyfill Boolean <optional>
false

輸入當runin='browser'時,轉譯檔案是否自動加入node polyfill布林值,主要把node專用語法(例如fs)轉為瀏覽器端語法,預設false

bMinify Boolean <optional>
true

輸入轉譯檔案是否進行壓縮布林值,預設true

keepFnames Boolean <optional>
false

輸入當轉譯檔案需壓縮時,是否保留函數名稱布林值,預設false

mangleReserved Array <optional>
[]

輸入當轉譯檔案需壓縮時,需保留函數名稱或變數名稱陣列,預設[]

mainFields Array <optional>
null

輸入取用套件內環境入口時,可強制給予循序入口陣列,各入口可選'browser'、'module'、'main',給予null則代表用rollup內建,預設null

globals Object <optional>
{}

輸入指定內外模組的關聯性物件,預設{}

external Array <optional>
[]

輸入指定內部模組需引用外部模組陣列,預設[]

bLog Boolean <optional>
true

輸入是否顯示預設log布林值,預設true

(async) rollupFiles(opt)

Description:
  • 使用rollup轉譯檔案

Source:
Parameters:
Name Type Description
opt Object

輸入設定物件

Properties
Name Type Attributes Default Description
fns String | Array

輸入原始碼檔案名稱字串陣列,各檔案含副檔名,不含所在資料夾

fdSrc String <optional>
'./'

輸入原始碼檔案所在資料夾字串,預設'./'

fdTar String <optional>
''

輸入轉譯檔案至儲存資料夾字串,預設''

nameDistType String <optional>
''

輸入轉譯檔案名稱格式字串,可選'kebabCase',預設''

hookNameDist function <optional>
null

輸入強制指定轉譯檔案名稱函數,預設null,會複寫nameDistType之處理結果

format String <optional>
'umd'

輸入轉譯格式字串,可選'umd'、'iife'、'es',預設'umd'

targets String <optional>
'old'

輸入轉譯等級字串,可選'new'、'old',預設'old'

ext String <optional>
'js'

輸入轉譯檔案副檔名字串,可選'js'、'mjs',預設'js'

bSourcemap Boolean <optional>
true

輸入轉譯檔案是否提供sourcemap布林值,預設true

bBanner Boolean <optional>
true

輸入轉譯檔案是否帶有開頭banner布林值,預設true

runin String <optional>
'browser'

輸入執行環境字串,可選'nodejs'、'browser',預設'browser'

bNodePolyfill Boolean <optional>
false

輸入轉譯檔案是否自動加入Nodejs polyfill布林值,主要把Nodejs語法(例如fs)轉為瀏覽器端語法,預設false

bMinify Boolean <optional>
true

輸入轉譯檔案是否進行壓縮布林值,預設true

keepFnames Boolean <optional>
false

輸入當轉譯檔案需壓縮時,是否保留函數名稱布林值,預設false

mangleReserved Array <optional>
[]

輸入當轉譯檔案需壓縮時,需保留函數名稱或變數名稱陣列,預設[]

mainFields Array <optional>
null

輸入取用套件內環境入口時,可強制給予循序入口陣列,各入口可選'browser'、'module'、'main',給予null則代表用rollup內建,預設null

globals Object <optional>
{}

輸入指定內外模組的關聯性物件,預設{}

external Array <optional>
[]

輸入指定內部模組需引用外部模組陣列,預設[]

bLog Boolean <optional>
true

輸入是否顯示預設log布林值,預設true

(async) rollupParfor(opt)

Description:
  • 使用rollup轉譯外部指定的核心分析程式碼檔案,並封裝至前端web worker與後端worker內

Source:
Parameters:
Name Type Description
opt Object

輸入設定物件

Properties
Name Type Attributes Default Description
name String

輸入模組名稱字串,將來會掛於winodw下或於node引入使用

type String <optional>
'object'

輸入模組類型字串,可選'function'、'object'。若使用'function',於初始化後可呼叫terminate銷毀;若使用'object',預設execObjectFunsByInstance為true,執行完指定函數後亦自動銷毀,若改execObjectFunsByInstance為false,就一樣得於初始化後呼叫terminate銷毀。回傳函數或物件。轉譯後會掛載模組名稱至window下,若type使用'function'時則window['模組名稱']為函數,得自己初始化才能呼叫其內函數或監聽事件;若type使用'object'時則window['模組名稱']為物件,可直接呼叫其內函數預設'object'

funNames Array

輸入模組可被呼叫的函數名稱陣列

evNames Array <optional>
[]

輸入模組可監聽的函數名稱陣列,預設[]

fpSrc String

輸入原始碼檔案位置字串

fpTar String

輸入轉譯完程式碼檔案儲存位置字串

nameDistType String <optional>
''

輸入轉譯檔案名稱格式字串,可選'kebabCase',預設''

hookNameDist function <optional>
null

輸入強制指定轉譯檔案名稱函數,預設null,會複寫nameDistType之處理結果

formatOut String <optional>
'es'

輸入欲轉譯成js格式字串,可選'umd'、'iife'、'es',預設'es'

targets String <optional>
'new'

輸入轉譯等級字串,可選'new'、'old',預設'new'

runin String <optional>
'both'

輸入執行環境字串,可選'both'、'nodejs'、'browser',預設'both'

bNodePolyfill Boolean <optional>
false

輸入轉譯是否自動加入Nodejs polyfill布林值,主要把Nodejs語法(例如fs)轉為瀏覽器端語法,預設false

execFunctionByInstance Boolean <optional>
true

輸入若模組類型為物件type='function'時,是否將function視為使用獨立實體執行並自動銷毀實體布林值,例如原模組就是一個運算函數,不需要回傳eventemmitter監聽事件,預設true

execObjectFunsByInstance Boolean <optional>
true

輸入若模組類型為物件type='object'時,各函式是否使用獨立實體執行布林值,例如使用到stream的各函式會因共用同一個實體導致降速,故各函數需自動有各自實體,預設true

bMinify Boolean <optional>
true

輸入轉譯檔案是否進行壓縮布林值,預設true

keepFnames Boolean <optional>
false

輸入當轉譯檔案需壓縮時,是否保留函數名稱布林值,預設false

mangleReserved Array <optional>
[]

輸入當轉譯檔案需壓縮時,需保留函數名稱或變數名稱陣列,預設[]

mainFields Array <optional>
null

輸入取用套件內環境入口時,可強制給予循序入口陣列,各入口可選'browser'、'module'、'main',給予null則代表用rollup內建,預設null

globals Object <optional>
{}

輸入指定內外模組的關聯性物件,預設{}

external Array <optional>
[]

輸入指定內部模組需引用外部模組陣列,預設[]

bLog Boolean <optional>
true

輸入是否顯示預設log布林值,預設true

(async) rollupVueToHtml(srcopt, taropt, optopt)

Description:
  • 使用rollup轉譯Vue檔案並產生瀏覽用的html檔

Source:
Parameters:
Name Type Attributes Default Description
src String <optional>
'./src/App.vue'

輸入欲打包Vue檔案(*.vue)的位置字串,預設'./src/App.vue'

tar String <optional>
'./docs/examples/app.html'

輸入輸出html的位置字串,並於該目錄下會出現打包後的js檔與map檔,預設'./docs/examples/app.html'

opt Object <optional>
{}

輸入其他設定物件,預設{}

Properties
Name Type Attributes Default Description
htmlLang String <optional>
'zh-tw'

輸入所產生html的lang字串,預設'zh-tw'

title String <optional>
''

輸入標題字串,預設''

head String <optional>
''

輸入head內額外html字串,預設''

newVue String <optional>
''

輸入初始化(new Vue)內額外設定字串,預設''

globals Array <optional>
{}

輸入rollup不打包套件時內外部套件關聯性設定物件,預設{}

external Array <optional>
[]

輸入rollup不打包套件清單陣列,預設[]

(async) rollupWorker(opt)

Description:
  • 使用rollup轉譯檔案,並封裝至前端web worker與後端worker內

Source:
Parameters:
Name Type Description
opt Object

輸入設定物件

Properties
Name Type Attributes Default Description
name String

輸入模組名稱字串,將來會掛於winodw下或於node引入使用

type String <optional>
'object'

輸入模組類型字串,可選'function'、'object'。若使用'function',於初始化後可呼叫terminate銷毀;若使用'object',預設execObjectFunsByInstance為true,執行完指定函數後亦自動銷毀,若改execObjectFunsByInstance為false,就一樣得於初始化後呼叫terminate銷毀。回傳函數或物件。轉譯後會掛載模組名稱至window下,若type使用'function'時則window['模組名稱']為函數,得自己初始化才能呼叫其內函數或監聽事件;若type使用'object'時則window['模組名稱']為物件,可直接呼叫其內函數預設'object'

funNames Array

輸入模組可被呼叫的函數名稱陣列

evNames Array <optional>
[]

輸入模組可監聽的函數名稱陣列,預設[]

fpSrc String

輸入原始碼檔案位置字串

fpTar String

輸入轉譯完程式碼檔案儲存位置字串

nameDistType String <optional>
''

輸入轉譯檔案名稱格式字串,可選'kebabCase',預設''

hookNameDist function <optional>
null

輸入強制指定轉譯檔案名稱函數,預設null,會複寫nameDistType之處理結果

formatOut String <optional>
'es'

輸入欲轉譯成js格式字串,可選'umd'、'iife'、'es',預設'es'

targets String <optional>
'new'

輸入轉譯等級字串,可選'new'、'old',預設'new'

runin String <optional>
'both'

輸入執行環境字串,可選'both'、'nodejs'、'browser',預設'both'

bNodePolyfill Boolean <optional>
false

輸入轉譯是否自動加入Nodejs polyfill布林值,主要把Nodejs語法(例如fs)轉為瀏覽器端語法,預設false

execFunctionByInstance Boolean <optional>
true

輸入若模組類型為物件type='function'時,是否將function視為使用獨立實體執行並自動銷毀實體布林值,例如原模組就是一個運算函數,不需要回傳eventemmitter監聽事件,預設true

execObjectFunsByInstance Boolean <optional>
true

輸入若模組類型為物件type='object'時,各函式是否使用獨立實體執行布林值,例如使用到stream的各函式會因共用同一個實體導致降速,故各函數需自動有各自實體,預設true

bMinify Boolean <optional>
true

輸入轉譯檔案是否進行壓縮布林值,預設true

keepFnames Boolean <optional>
false

輸入當轉譯檔案需壓縮時,是否保留函數名稱布林值,預設false

mangleReserved Array <optional>
[]

輸入當轉譯檔案需壓縮時,需保留函數名稱或變數名稱陣列,預設[]

mainFields Array <optional>
null

輸入取用套件內環境入口時,可強制給予循序入口陣列,各入口可選'browser'、'module'、'main',給予null則代表用rollup內建,預設null

globals Object <optional>
{}

輸入指定內外模組的關聯性物件,預設{}

external Array <optional>
[]

輸入指定內部模組需引用外部模組陣列,預設[]

bLog Boolean <optional>
true

輸入是否顯示預設log布林值,預設true

(async) rollupWorkerCore(opt)

Description:
  • 使用rollup轉譯檔案,並封裝至前端web worker內或後端nodejs worker內

Source:
Parameters:
Name Type Description
opt Object

輸入設定物件

Properties
Name Type Attributes Default Description
name String

輸入模組名稱字串,將來會掛於winodw下或於node引入使用

type String <optional>
'object'

輸入模組類型字串,可選'function'、'object'。若使用'function',於初始化後可呼叫terminate銷毀;若使用'object',預設execObjectFunsByInstance為true,執行完指定函數後亦自動銷毀,若改execObjectFunsByInstance為false,就一樣得於初始化後呼叫terminate銷毀。回傳函數或物件。轉譯後會掛載模組名稱至window下,若type使用'function'時則window['模組名稱']為函數,得自己初始化才能呼叫其內函數或監聽事件;若type使用'object'時則window['模組名稱']為物件,可直接呼叫其內函數預設'object'

execFunctionByInstance Boolean <optional>
true

輸入若模組類型為物件type='function'時,是否將function視為使用獨立實體執行並自動銷毀實體布林值,例如原模組就是一個運算函數,不需要回傳eventemmitter監聽事件,預設true

execObjectFunsByInstance Boolean <optional>
true

輸入若模組類型為物件type='object'時,各函式是否使用獨立實體執行布林值,例如使用到stream的各函式會因共用同一個實體導致降速,故各函數需自動有各自實體,預設true

funNames Array <optional>
[]

輸入模組可被呼叫的函數名稱陣列,預設[]

evNames Array <optional>
[]

輸入模組可監聽的函數名稱陣列,預設[]

fpSrc String

輸入原始碼檔案位置字串

bReturnCode Boolean <optional>
false

輸入是否回傳轉譯後程式碼而不輸出布林值,設定為true時則fpTar失效,預設false

fpTar String

輸入轉譯完程式碼檔案儲存位置字串

nameDistType String <optional>
''

輸入轉譯檔案名稱格式字串,可選'kebabCase',預設''

hookNameDist function <optional>
null

輸入強制指定轉譯檔案名稱函數,預設null,會複寫nameDistType之處理結果

formatOut String <optional>
'es'

輸入欲轉譯成js格式字串,可選'umd'、'iife'、'es',預設'es'

targets String <optional>
'new'

輸入轉譯等級字串,可選'new'、'old',預設'new'

runin String <optional>
'browser'

輸入執行環境字串,可選'nodejs'、'browser',預設'browser'

bNodePolyfill Boolean <optional>
false

輸入轉譯是否自動加入Nodejs polyfill布林值,主要把Nodejs語法(例如fs)轉為瀏覽器端語法,預設false

bMinify Boolean <optional>
true

輸入轉譯檔案是否進行壓縮布林值,預設true

keepFnames Boolean <optional>
false

輸入當轉譯檔案需壓縮時,是否保留函數名稱布林值,預設false

mangleReserved Array <optional>
[]

輸入當轉譯檔案需壓縮時,需保留函數名稱或變數名稱陣列,預設[]

mainFields Array <optional>
null

輸入取用套件內環境入口時,可強制給予循序入口陣列,各入口可選'browser'、'module'、'main',給予null則代表用rollup內建,預設null

globals Object <optional>
{}

輸入指定內外模組的關聯性物件,預設{}

external Array <optional>
[]

輸入指定內部模組需引用外部模組陣列,預設[]

bLog Boolean <optional>
true

輸入是否顯示預設log布林值,預設true

setPks(pks, fnopt)

Description:
  • 儲存資料至package.json

Source:
Parameters:
Name Type Attributes Default Description
pks Object

輸入package.json資料物件

fn String <optional>
'./package.json'

輸入package.json路徑字串