[TOC]
管理本地安裝的npm軟件包的最好方法是創建一個 package.json 文件。
一個 package.json 文件:
* 列出你的項目依賴的軟件包。
* 允許您使用[語義版本規則](https://docs.npmjs.com/getting-started/docs.npmjs.com/getting-started/semantic-versioning)來指定項目可以使用的包的版本。
* 使您的構建可重復使用,因此與其他開發人員共享更容易。
## 要求
package.json必須具有:
* “名稱”
* 全部小寫
* 一個單詞,沒有空格
* 允許破折號和下劃線
* “版本號”
* 以 x.x.x 的形式
* 遵循 [semver 規范](https://docs.npmjs.com/getting-started/docs.npmjs.com/getting-started/semantic-versioning)
例如:
~~~
{
"name": "my-awesome-package",
"version": "1.0.0"
}
~~~
## 創建一個 package.json 文件
有兩種基本的方法來創建一個 package.json 文件。
### 1.運行 CLI 問卷
要使用您提供的值創建 package.json,請運行:
~~~
> npm init
~~~
這將啟動一個命令行調查問卷,最終將在您啟動命令的目錄中創建一個 package.json 。
### 2.創建一個默認的 package.json
要獲得默認的 package.json 文件,請使用 --yes 或 -y 標志運行 `npm init`:
~~~
> npm init --yes
~~~
此方法將使用從當前目錄中提取的信息生成默認的 package.json。
~~~
> 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: 當前目錄名稱
* version: 總是1.0.0
* description: 自述文件中的信息,或空字符串“”
* main: 總是index.js
* scripts: 默認情況下創建一個空的測試腳本
* keywords: 空
* author: 空
* license: ISC
* bugs: 來自當前目錄的信息(如果存在)
* homepage: 來自當前目錄的信息(如果存在)
您還可以為 init 命令設置多個配置選項。 一些有用的:
~~~
> 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 時找到您的軟件包,因此在 package.json 中進行自定義描述以使您的軟件包更容易找到是非常有用的。
### 如何自定義 package.json 問卷
如果您希望創建許多 package.json 文件,您可能希望自定義 init 進程期間提出的問題,以便文件始終包含您期望的關鍵信息。 您可以自定義字段以及問題。
為此,您需要在主目錄 `?/ .npm-init.js `中創建一個自定義的 **.npm-init.js** 文件。
一個簡單的 **.npm-init.js** 可能看起來像這樣:
~~~
module.exports = {
customField: 'Custom Field',
otherCustomField: 'This field is really cool'
}
~~~
在主目錄中使用此文件運行 `npm init ` 會輸出一個包含以下行的 package.json 文件:
~~~
{
customField: 'Custom Field',
otherCustomField: 'This field is really cool'
}
~~~
您還可以使用提示功能自定義問題。
~~~
module.exports = prompt("what's your favorite flavor of ice cream, buddy?", "I LIKE THEM ALL");
~~~
要了解更多關于如何創建高級自定義的信息,請查看 [init-package-json](https://github.com/npm/init-package-json) 的文檔。
### 指定依賴項
要指定項目所依賴的包,需要列出要在package.json文件中使用的包。 有兩種類型的包可以列出:
* “dependencies”:這些包是您的應用程序在生產中所需的。
* “devDependencies”:這些軟件包僅用于開發和測試。
#### 手動編輯 package.json 文件
你可以手動編輯你的 package.json 。 您需要在包對象中創建一個名為 **dependencies** 的屬性,該屬性指向一個對象。 該對象將保存用于指定要使用的包的屬性。 它將指向一個 [semver](https://docs.npmjs.com/getting-started/docs.npmjs.com/getting-started/semantic-versioning) 表達式,該表達式指定該項目與您的項目兼容的版本。
如果你有依賴關系,你只需要在本地開發過程中使用,請按照上述相同的說明進行操作,但使用名為 `devDependencies` 的屬性。
例如,下面的項目使用與生產中的 主版本1 匹配的任何版本的包 **my_dep**,并且需要與主版本3 匹配的包 **my_test_framework** 的任何版本,但僅用于開發:
~~~
{
"name": "my_package",
"version": "1.0.0",
"dependencies": {
"my_dep": "^1.0.0"
},
"devDependencies" : {
"my_test_framework": "^3.1.0"
}
}
~~~
### --save 和 --save-dev 安裝標志
向 package.json 添加依賴關系的更簡單(也更可怕)的方法是從命令行執行此操作,使用 --save 或 --save-dev 標記 npm install 命令,具體取決于您希望如何 使用該依賴關系。
要添加一個條目到你的 package.json 的 **dependencies** 中:
~~~
npm install <package_name> --save
~~~
要添加一個條目到你的 package.json 的 **devDependencies** 中:
~~~
npm install <package_name> --save-dev
~~~
### 管理依賴版本
npm 使用語義版本控制,或者像我們經常提到的那樣使用 SemVer 來管理軟件包版本和范圍。
如果您的目錄中有一個 package.json 文件,并且運行 **npm install**,那么 npm 將使用語義版本控制來查看該文件中列出的依賴關系并下載最新版本。
## 學習更多
要更多地了解 package.json 的功能,請參閱[第8章](https://docs.npmjs.com/getting-started/installing-npm-packages-globally)中的視頻“Installing npm packages locally”。
要了解關于語義版本控制的更多信息,請參閱入門 [Getting Started "Semver" page](https://docs.npmjs.com/getting-started/docs.npmjs.com/getting-started/semantic-versioning)。
> [原文鏈接](https://docs.npmjs.com/getting-started/using-a-package.json)
- 第一章 入門
- 01 - 什么是npm?
- 02 - 如何找到和選擇軟件包
- 03 - 如何設置新的npm賬戶并安裝npm
- 04 - 如何安裝本地軟件包
- 05 - 使用package.json
- 06 - 如何更新本地軟件包
- 07 - 如何卸載本地軟件包
- 08 - 如何安裝全局包
- 09 - 如何更新全局包
- 10 - 如何卸載全局軟件包
- 11 - 如何創建Node.js模塊
- 12 - 如何發布和更新軟件包
- 13 - 如何使用語義版本控制
- 14 - 如何使用作用域包
- 15 - 如何用dist-tags標簽包
- 16 - 如何使用雙因素認證
- 17 - 如何使用安全令牌
- 18 - 如何更改配置文件設置
- 19 - 了解包和模塊
- 20 - 如何防止權限錯誤
- 第二章 私人包裹
- 第三章 故障排除
- 第四章 使用npm
- 第五章 CLI命令
- 第七章 配置npm
- 第八章 npm,Inc.