一個完整的開源庫必須包含
一個好的開源庫,他的開發環境,必須讓開發者開發的順手甚至有助於團隊開發,使用者更要用的舒服。而對於開發者說,一個好的開發環境必須滿足這幾個需求
開發者使用ES6+版本來開發
小補充:
ES是以ECMAScript規範所管理的javascript,常見的有ES5 ES6 ES-next,通常會以ES6開發,最後以babel(之 > 後的章節會討論)轉成ES5
ES5是目前在各環境支援度最高的一個版本喔
而一個開源庫就是為了使用者而做的,如果開發者是開源庫的爸爸,那麼使用者就是開源庫的媽媽。因此使用者對於開源庫是非常重要的,以下將會介紹對於一個使用者來說,甚麼樣的開源庫是優秀的
當一個庫限制過大,往往會使得使用者用起來綁手綁腳。(例如:後端環境不支援,只能以 require 引入 ....),因此一個舒適的開發環境應該滿足以下需求:
小補充:
node 環境吃 CommonJS ...
chrome 環境吃 AMD ES...
小補充:
javascript 共有 liff AMD CMD UMD ES等模塊方案
以下附一張 JS模塊比較,圖來自 Js 模塊化指南(https://kknews.cc/tech/42k328x.html)
``` 範例
const OurLib = require("OurLib")
import Ourlib from 'OurLib'
<script scr="OurLib"></script>
```
為了滿足以上條件通常開發者會使用rollup 或是 webpack等工具來建構開發環境。
預編譯工具是甚麼呢?
Webpack 和 rollup 通常利用靜態分析得到最後的結果,然後藉由最後的結果來去編譯開發者的JS代碼,藉此可以將不需要的代碼去掉,或是根據開發者的需求做其他進階設定。