昨日蘋果 App Store 前端原始碼泄露,因其生產環境忘記關閉 Sourcemap,被用戶下載了原始碼,並上傳到 Github。
目前已經 Fork 和 Star 超過 5k:

如果你想要第一時間知道前端資訊,歡迎關注公眾號:冴羽
用戶 rxliuli 使用 Chrome 外掛 Save All Resources 將代碼下載下來。
外掛地址為:chromewebstore.google.com/detail/save…

下次你也可以打包下載原始碼了~
其實前端原始碼泄露對業務本身並沒有什麼影響,因為前端代碼無論是否壓縮還是混淆,最終都需傳輸到瀏覽器才能運行,本身就具有 “暴露” 屬性,SourceMap 只是讓代碼更易讀,更容易調試。
儘管如此,依然不建議在生產環境開啟 SourceMap,對普通用戶無益,且存在輕微性能開銷和源代碼暴露的安全風險。
我大致看了下代碼,並沒有什麼密鑰之類的信息,所以干點壞事之類的就不用想了。真正有價值的核心代碼比如推薦邏輯還是在服務端。
我萬萬沒想到,項目使用的是 Svelte。
Svelte 我自然是很熟的,畢竟我翻譯過 Svelte 官網:svelte.yayujs.com/

還寫了一本掘金小冊《Svelte 開發指南》:s.juejin.cn/ds/QNzfZ4eq…

想一想,使用 Svelte 也在情理之中。
因為 Svelte 就非常適合處理這種頁面相對簡單、業務邏輯並不複雜的頁面。
在實現上,與其說 Svelte 是框架,不如說 Svelte 是一個編譯器。 它會在構建時就會將代碼編譯為高效的 JavaScript 代碼,因此能夠實現高性能的 Web 應用。
Svelte 的核心優勢在於:
簡而言之,Svelte 非常適合構建輕量級 Web 項目,也是本人做個人項目的首選技術棧。
以後大家如果要做相對簡單的項目,又有性能上的追求(比如 KPI),那就可以考慮使用 Svelte。
我看了下代碼,項目代碼還是 Svelte 4,而 Svelte 已經到 5 了,Svelte 4 和 5 不論是底層架構還是基礎語法都發生了很大的變化,其變化的劇烈程度類似於 Next.js 12 升 Next.js 13,所以想通過這個項目學習 Svelte 就不用想了,都是些過時的語法了,不如直接學 Svelte 5。