你可以新增一個 package.json 檔案到你的套件中,讓其他人可以輕鬆管理和安裝。發布到註冊表的套件必須包含一個 package.json 檔案。

一個 package.json 檔案

  • 列出你的專案所依賴的套件
  • 使用 語意化版本控制規則 指定專案可使用的套件版本
  • 讓您的建置可重複執行,因此更容易與其他開發人員分享

注意:若要讓您的套件更容易在 npm 網站上找到,我們建議在 package.json 檔案中加入自訂 description

package.json 欄位

必要的 nameversion 欄位

package.json 檔案必須包含 "name""version" 欄位。

"name" 欄位包含套件名稱,必須是小寫且為單字,且可以包含連字號和底線。

"version" 欄位必須採用 x.x.x 格式,並遵循 語意化版本控制指南

Author 欄位

如果您想在 "author" 欄位中包含套件作者資訊,請使用下列格式(電子郵件和網站皆為選填)

您的姓名 <email@example.com> (http://example.com)

範例

{
"name": "my-awesome-package",
"version": "1.0.0",
"author": "Your Name <email@example.com>"
}

建立新的 package.json 檔案

您可以透過執行 CLI 問卷或建立預設 package.json 檔案來建立 package.json 檔案。

執行 CLI 問卷

若要建立包含您提供值的 package.json 檔案,請使用 npm init 指令。

  1. 在命令列中,導覽至套件的根目錄。

    cd /path/to/package
  2. 執行下列指令

    npm init
  3. 回答命令列問卷中的問題。

自訂 package.json 問卷

如果您預期會建立許多 package.json 檔案,您可以自訂 init 程序中詢問的問題和建立的欄位,讓所有 package.json 檔案都包含一套標準資訊。

  1. 在您的主目錄中,建立一個名為 .npm-init.js 的檔案。

  2. 若要新增自訂問題,請使用文字編輯器,並使用 prompt 函數新增問題

    module.exports = prompt("朋友,你最喜歡的冰淇淋口味是什麼?", "我都喜歡");
  3. 若要新增自訂欄位,請使用文字編輯器,將所需的欄位新增至 .npm-init.js 檔案

    module.exports = {
    customField: 'Example custom field',
    otherCustomField: 'This example field is really cool'
    }

若要進一步了解如何建立進階 npm init 自訂設定,請參閱 init-package-json GitHub 儲存庫

建立預設 package.json 檔案

若要使用從目前目錄中萃取的資訊建立預設 package.json,請使用 npm init 指令,並搭配 --yes-y 旗標。如需預設值的清單,請參閱「從目前目錄中萃取的預設值」。

  1. 在命令列中,導覽至套件的根目錄。

    cd /path/to/package
  2. 執行下列指令

    npm init --yes

範例

> npm init --yes
Wrote to /home/monatheoctocat/my_package/package.json:
{
"name": "my_package",
"description": "",
"version": "1.0.0",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "https://github.com/monatheoctocat/my_package.git"
},
"keywords": [],
"author": "",
"license": "ISC",
"bugs": {
"url": "https://github.com/monatheoctocat/my_package/issues"
},
"homepage": "https://github.com/monatheoctocat/my_package"
}

從目前目錄中萃取的預設值

  • name:目前目錄名稱
  • version:始終為 1.0.0
  • description:來自 README 的資訊,或空字串 ""
  • scripts:預設建立一個空的 test 腳本
  • keywords:空
  • author:空
  • licenseISC
  • bugs:如果存在,則為來自目前目錄的資訊
  • homepage:如果存在,則為來自目前目錄的資訊

設定 init 指令的組態選項

你可以為 init 指令設定預設組態選項。例如,若要在命令列設定預設作者電子郵件、作者名稱和授權,請執行下列指令

> npm set init-author-email "example-user@example.com"
> npm set init-author-name "example_user"
> npm set init-license "MIT"