我的第一個 npm 套件:2011 年的 Node 模板引擎 jst

· 2 min read

翻 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 年前、已經沒人用的模板引擎。寫這篇是想記錄幾件事:

  1. 開源是長跑。 從 2011 年的 jst,到 2022 年的 alpinejs-routersvelte-router,中間隔了十幾年,我還在寫、還在發佈、還在維護。持續輸出本身就是一種信譽。

  2. 命名很重要。 「jst」太普通了 — 這個詞在搜尋引擎裡是歧義詞(JavaScript Template、各種組織縮寫),等於把 SEO 起跑線讓給別人。相比之下,@shaun/alpinejs-router 把用途直接寫進名字裡,十幾年後依然能被搜到。

  3. 技術會過時,但經驗會累積。 模板引擎後來被各種框架內建取代,但當年對字串處理、效能、API 設計的理解,到現在寫 router 都還在用。

從模板引擎到路由器的十四年

如果對這兩個我現在仍在維護的套件有興趣:

從「把模板塞進 HTML」到「在瀏覽器裡管理歷史與路由」,核心其實是同一件事:設計一個小而精、好用的 API,讓別人願意用它。