npm package.json 文件

2021-10-29 10:46 更新

管理本地安裝的 npm 包的最佳方法是創(chuàng)建一個?package.json文件。

一個package.json文件:

  • 列出項(xiàng)目所依賴的包。
  • 允許使用語義版本控制規(guī)則指定項(xiàng)目可以使用的包版本。
  • 使構(gòu)建可重現(xiàn),因此更容易與其他開發(fā)人員共享。

要求

一個package.json必須具備:

  • "name"
    • 全部小寫
    • 一個字,沒有空格
    • 允許使用破折號和下劃線`
  • "version"

{
  "name": "my-awesome-package",
  "version": "1.0.0"
}

創(chuàng)建 package.json

創(chuàng)建 package.json 文件有兩種基本方法。

1. 運(yùn)行 CLI 問卷

要使用你提供的值創(chuàng)建一個package.json文件,請運(yùn)行:

> npm init

這將啟動一個命令行調(diào)查問卷,該調(diào)查問卷將package.json在你啟動命令的目錄中創(chuàng)建一個。

2. 創(chuàng)建默認(rèn)值 package.json

要獲得默認(rèn)值package.json,請npm init使用--yes?or-y標(biāo)志運(yùn)行:

> npm init --yes

此方法將package.json使用從當(dāng)前目錄中提取的信息生成默認(rèn)值。

> npm init --yes
Wrote to /home/ag_dubs/my_package/package.json:


{
  "name": "my_package",
  "description": "",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/ashleygwilliams/my_package.git"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/ashleygwilliams/my_package/issues"
  },
  "homepage": "https://github.com/ashleygwilliams/my_package"
}
  • name: 當(dāng)前目錄名
  • version: 總是?1.0.0
  • description: 來自自述文件的信息,或空字符串?""
  • main: 總是?index.js
  • scripts: 默認(rèn)情況下創(chuàng)建一個空test腳本
  • keywords: 空的
  • author: 空的
  • license:?ISC
  • bugs: 來自當(dāng)前目錄的信息(如果存在)
  • homepage: 來自當(dāng)前目錄的信息(如果存在)

你還可以為 init 命令設(shè)置多個配置選項(xiàng)。一些有用的:

> npm set init.author.email "wombat@npmjs.com"
> npm set init.author.name "ag_dubs"
> npm set init.license "MIT"

筆記
如果package.json中沒有描述字段,npm 將使用README.md或 README的第一行。描述可以幫助人們在搜索 npm 時找到你的包,因此在 中進(jìn)行自定義描述package.json以使你的包更容易找到絕對有用。

如何自定義 package.json 問題

如果你希望創(chuàng)建許多 package.json 文件,你可能希望自定義在初始化過程中提出的問題,以便文件始終包含你所期望的關(guān)鍵信息。你也可以自定義字段以及提出的問題。

為此,你在~/.npm-init.js主目錄中創(chuàng)建自定義.npm-init.js。

一個簡單的.npm-init.js可能看起來像這樣:

module.exports = {
  customField: 'Custom Field',
  otherCustomField: 'This field is really cool'
}

npm init在你的主目錄中使用此文件運(yùn)行將輸出package.json包含以下行的文件:

{
  customField: 'Custom Field',
  otherCustomField: 'This field is really cool'
}

你還可以使用prompt功能自定義問題。

  module.exports = prompt("what's your favorite flavor of ice cream, buddy?", "I LIKE THEM ALL");

要了解有關(guān)如何創(chuàng)建高級自定義的更多信息,請查看init-package-json的文檔

指定依賴項(xiàng)

要指定項(xiàng)目所依賴的包,你需要列出要在package.json文件中使用的包,可以列出兩種類型的包:

  • "dependencies":應(yīng)用程序在生產(chǎn)中需要這些包。
  • "devDependencies": 這些包只用于開發(fā)和測試。

手動編輯 package.json

你可以手動編輯你的package.json。你需要在包對象中創(chuàng)建一個dependencies指向?qū)ο蟮膶傩?。此對象將包含命名要使用的包的屬性。它將指向一個semver表達(dá)式,該表達(dá)式指定與您的項(xiàng)目兼容的項(xiàng)目版本。

如果你有只需要在本地開發(fā)期間使用的依賴項(xiàng),請按照與上述相同的說明進(jìn)行操作,但使用名為devDependencies.

例如,下面的項(xiàng)目在生產(chǎn)中使用my_dep與主要版本 1 匹配的包的任何版本,并且需要my_test_framework與主要版本 3 匹配的包的任何版本,但僅用于開發(fā):

{
  "name": "my_package",
  "version": "1.0.0",
  "dependencies": {
    "my_dep": "^1.0.0"
  },
  "devDependencies" : {
    "my_test_framework": "^3.1.0"
  }
}

在 --save 和 --save-dev 安裝標(biāo)志

向你的依賴項(xiàng)添加依賴項(xiàng)的更簡單(也更棒)的方法package.json是從命令行npm install執(zhí)行此操作,使用--save或?標(biāo)記命令--save-dev,具體取決于你希望如何使用該依賴項(xiàng)。

要向你的package.json's添加條目dependencies

npm install <package_name> --save

要向你的package.json's添加條目devDependencies

npm install <package_name> --save-dev

管理依賴版本

npm 使用語義版本控制,或者我們經(jīng)常提到的 SemVer,來管理包的版本和版本范圍。

如果你的package.json目錄中有一個文件并運(yùn)行npm install,npm 將查看該文件中列出的依賴項(xiàng)并使用語義版本控制下載最新版本。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號