設定 package.json

已完成

歡迎來到使用 npm 和套件管理進行 Node.js 專案管理的世界。 讓我們深入了解封裝的基本概念以及它如何增強您的開發流程。

封裝與套件管理

NPM 是 Node.js 的預設套件管理員,是一項可將外部程式碼合併到專案中的秘密武器。 就像擁有私人助理一樣,可以幫助您更快、更有效率地建置應用程式。

封裝就像是將您的程式碼包裝成禮物一樣,方便散發。 它會將您的程式碼及其相依項目整齊地組合到一個套件中,方便其他人輕鬆安裝和使用。 套件管理是處理這些套件的藝術,它牽涉到:

  • package.json 檔案,您的專案藍圖。 它包含您專案的中繼資料,並負責管理相依項目和套件檔案。
  • npm CLI 工具,這是從 npm 登錄安裝和管理套件的私人助手。
  • npm 登錄,這是可供專案使用的公用套件寶庫。

建立 package.json

建立 package.json 就像執行 npm init 命令一樣簡單。 有兩種方式可以完成此動作:

  • npm init:此命令就像一位友善的指導者,帶領您逐步完成流程,並詢問您專案的詳細資訊,例如名稱、版本和描述。
  • npm init -y:此命令是 npm init 的快速訓練版本。 它會快速跳過問題,並為您填入預設值。

這是您將產生的 package.json 檔案的搶先預覽。

{
  "name": "my project",
  "version": "1.0.0",
  "description": "",
  "main": "script.js",
  "dependencies": {},
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

了解 package.json 檔案區域

package.json 檔案想成是一個寶箱,裡面裝滿了珍貴的寶石,能讓您的專案閃閃發光。 這些寶石是 package.json 檔案中的屬性,它們分為三個主要類別:

  • 中繼資訊:這些屬性就像皇冠上的寶石,定義專案的中繼資訊。 它們包括專案名稱、描述、作者、關鍵字等等。
  • 相依性:這些是金幣和銀幣,代表專案使用的套件。 dependenciesdevDependencies 屬性擁有這些寶藏。 隨著我們進一步深入,您將學習如何使用這些屬性來安裝、更新和管理您的相依項目。
  • 指令碼:這些是讓專案工作執行的終端命令。 您可以列出用於執行工作的指令碼,例如 start、build、test 和 lint。

使用指令碼加速工作

在您的 package.json 檔案中,您應該至少包含四個常用指令碼:

  • start:此指令碼可讓專案生動起來。 例如,它可能會使用命令 node ./src/index.js
  • build:此指令碼為您的專案準備盛大的首次亮相。 例如,它可能會將 TypeScript 轉換成 JavaScript。
  • test:此指令碼會檢查專案的健康情況,通常是使用測試套件。
  • lint:此指令碼會整理您的程式碼,使用類似 ESLint 的工具檢查樣式和格式問題。

這些指令碼名稱就像是魔法咒語,在開發人員社群中廣為人知,對於保持專案的組織性至關重要。

標準化指令碼名稱

在您的 package.json 檔案中,指令碼是由動作和命令來定義的:

"scripts" : {
  "<action>" : "<command>"
}

以下是範例:

"scripts" : {
  "start" : "node ./dist/index.js",
  "test": "jest",
  "build": "tsc",
  "lint": "eslint"
}

執行指令碼

若要在終端中執行指令碼,請輸入命令 npm run <action>。 例如: npm run lint

starttest 動作很特別,因為您可以省略命令中的單字 run。 您可以輸入 npm start,而不是輸入命令 npm run start

使用預先定義的開發環境

此訓練模組會在瀏覽器中或本機電腦提供開發容器。 此容器提供所有必要的環境,因此您可以使用此訓練課程模組,而不需要安裝 IDE 或 Node.js。 您不需要了解容器的任何知識就能完成此訓練課程模組。