我的第一個 npm 套件:2011 年的 Node 模板引擎 jst
翻 npm 套件清單時,發現自己最早的發布記錄停在 2011 年。那是我寫的第一個 npm 套件:jst — Node JavaScript Template,一個號稱「pretty high performance」的模板引擎。
2011 年的 Node 世界
那時候 Node.js 還在 v0.4,npm 還是 0.3.x,npm 上的套件屈指可數。模板引擎是每個 Web 框架的必需品 — EJS、Jade(現在的 Pug)都是那個時代的產物。當時我寫了 jst,目標很單純:一個輕量、夠快的 JavaScript 模板引擎。
2011-04-28 發佈 0.0.1,之後兩週內一路迭代到 0.0.13 — 那段時間我應該是真的在認真用它。
jst 現在長什麼樣
npm view jst
- 描述:Node JavaScript Template, A pretty high performance template engine
- 最新版本:0.0.13(2011-05-08)
- 授權:MIT
它後來被轉交給其他維護者,所以現在 npm 上的 maintainer 已經不是我。但最初的版本記錄裡,作者欄寫著我的名字和信箱 — 算是數位時代的考古證據。
為什麼寫這篇
不是為了推銷一個 15 年前、已經沒人用的模板引擎。寫這篇是想記錄幾件事:
開源是長跑。 從 2011 年的 jst,到 2022 年的 alpinejs-router 和 svelte-router,中間隔了十幾年,我還在寫、還在發佈、還在維護。持續輸出本身就是一種信譽。
命名很重要。 「jst」太普通了 — 這個詞在搜尋引擎裡是歧義詞(JavaScript Template、各種組織縮寫),等於把 SEO 起跑線讓給別人。相比之下,
@shaun/alpinejs-router把用途直接寫進名字裡,十幾年後依然能被搜到。技術會過時,但經驗會累積。 模板引擎後來被各種框架內建取代,但當年對字串處理、效能、API 設計的理解,到現在寫 router 都還在用。
從模板引擎到路由器的十四年
如果對這兩個我現在仍在維護的套件有興趣:
從「把模板塞進 HTML」到「在瀏覽器裡管理歷史與路由」,核心其實是同一件事:設計一個小而精、好用的 API,讓別人願意用它。