包和依賴
沒有人會從零開始寫一整個應用。那些又難又常見的問題——格式化日期、處理支付、渲染一個日曆——別人早就解決好並打包好了。一個**包(package)就是一塊可複用的程式碼,你把它拉進自己的專案,而不用自己去寫。你專案的依賴(dependencies)**就是它所依賴的那一串包的清單。
在 JavaScript 的世界裡,管這件事的工具是 npm(Node Package Manager,Node 包管理器)。有兩個檔案負責記賬:
package.json—— 人類可讀的清單,列出你的專案需要什麼,外加執行它的命令。這個檔案是由你(或者 AI)來編輯的。- 鎖檔案 lockfile(
package-lock.json或類似的檔案)—— 一份精確的、由機器生成的記錄,記下每一個包及其確切的版本,好讓這個應用在你的機器、隊友的機器、以及伺服器上都構建得一模一樣。這個檔案你不用手動去改;交給工具去管理就好。
{
"name": "my-app",
"scripts": {
"dev": "next dev",
"build": "next build"
},
"dependencies": {
"next": "16.0.0",
"react": "19.0.0"
}
}
為什麼要在意這些?當 AI 說 "我們加一個庫來做這個吧" 時,它就是在編輯 package.json,而你正在信任別人的程式碼——更少、更知名的依賴,比一堆來路不明的依賴要安全。還有,當一次構建莫名其妙地壞掉時,依賴版本對不上是常見的嫌疑犯,而 "刪掉再重新安裝這些包" 是一個實實在在、很常用的修法。