# 不知如何選套件？教你 4 招來避雷！（下）

- 作者：林鼎淵（Dean Lin）
- 網址：https://deanlin.net/blog/202209/choosing-packages-2/
- 發布：2022-09-26
- 主題：技術教學
- 系列：套件的使用與選擇
- 標籤：科技島專欄、套件
- 摘要：接下來讓我們依照上篇文章提供的 4 個方法，透過實戰了解如何選出合適的套件吧！

> 紙上得來終覺淺，絕知此事要躬行。
> 陸游

接下來讓我們[依照上篇文章提供的 4 個方法](https://deanlin.net/blog/202209/choosing-packages-1/)，透過實戰了解如何選出合適的套件吧！

## 目標：需要一個能取得專案環境變數的套件

以軟體開發來說，我們會把散佈在各個檔案，且在不同環境需要調整或是保密的參數，集合到一個檔案裡面，這樣專案就能在不同的環境中快速遷移（ex：資料庫帳密、ip、網址…）。

這個檔案我們稱它為環境檔（.env），以 Node.js 專案來說，可以透過套件讀取環境檔的參數。

如果我們在 [npm 網站](https://www.npmjs.com/) 上，以「env」為搜尋條件會得到如下結果：

從左上角我們可以看到總共找到了 20 個套件，但哪個才符合我們需求呢？

## 從活躍度來判斷

我們需要的功能會往往有很多的套件可以完成，但儘管搜尋到的套件很多，但通常符合需求的都在前幾個；這裡我們將前兩個套件（[env](https://www.npmjs.com/package/env)、[dotenv](https://www.npmjs.com/package/dotenv)）用活躍度來比較。

| 套件 | env | dotenv |
| --- | --- | --- |
| 最後發布時間（Last publish） | 11 years ago | 16 days ago |
| 每週下載次數（Weekly Downloads） | 5,362 | 28,017,205 |
| 版本（Version） | 0.0.2 | 16.0.2 |

透過上表我們可以得知「dotenv」是更有保障的套件。

## 確認 Issues 狀況

既然「dotenv」獲得壓倒性優勢，我們就來看看他的「Issues」的狀況。

點進去後，我們可以看到他「Open issues 與 Closed issues 的比例」低於 10%，算是相當穩定的套件；且右上角的 Star 數量高達 16k，有人氣的套件也是一種品質保證。

## 閱讀文件

在「dotenv」的 README 文件上，它明確說明自己有讀取「.env」檔案的功能，並給出詳細的使用範例。

## 試用範例程式碼

在試用 Sample Code 前筆者再提醒一下，如果使用上遇到問題，可以到 Issues 的地方看看；過去我就曾遇過同一款套件，在不同框架下的使用方式略有不同，最後在 Issues 裡面參考他人的方案才順利解決。

筆者這邊也依照文件試用給大家看。

從上圖中，可以看到套件確實有印出我們需要的環境變數，可以初步判定它是一個合格的套件！

關於如何選出合適套件的系列文到這邊就告個段落嚕～希望大家日後在開發上都可以找到合適的套件。

---

關於作者：林鼎淵（Dean Lin），台灣的生成式 AI 企業內訓講師、外商資安公司軟體專家，也是生成式 AI 創新學院發起人。出版 7 本書（包含全台第一本 ChatGPT 應用專書），兩度獲得 iThome 鐵人賽佳作，累積上百場授課與顧問經驗。（https://deanlin.net/about/）
引用時請附上原文網址：https://deanlin.net/blog/202209/choosing-packages-2/
