使用package.json
管理本地安裝的npm包的最佳方法是創建一個package.json文件。
一個packagejson文件:
- 列出項目所依賴的包。
- 允許使用語義版本控制規則指定項目可以使用的包的版本。
- 使您的構建具有可重復性,因此更容易與其他開發人員共享。
需求
一個package.json必須:
- “name”
不允許大寫字母
不允許空格
允許使用破折號和下划線
- “version”
以x.x.x的形式
遵循semver規范
For example:
{ "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,運行npm init -yes或npm init -y
這個方法將生成一個默認package.json,使用從當前目錄中提取的信息。
Wrote to /Users/wangkun/Desktop/nodeWork/work2/lesson8-1/package.json: { "name": "lesson8-1", "version": "1.0.0", "description": "", "main": "index.js", "dependencies": { "react": "^16.8.6" }, "devDependencies": {}, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC"
-
name: 當前目錄名稱 -
version: 版本 -
description: 說明 -
main: 入口文件,總是index.js -
dependencies:生產依賴
-
devDependencies:開發依賴
-
scripts:腳本,默認情況下創建一個空的測試腳本 -
keywords:關鍵字 -
author:作者 -
license: 許可
您還可以為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' }
您還可以使用prompt函數自定義問題。
module.exports = prompt("what's your favorite flavor of ice cream, buddy?", "I LIKE THEM ALL");
要了解更多關於如何創建高級定制的信息,請查看init-package-json文檔
指定依賴項
要指定項目所依賴的包,需要列出希望在中package.json文件中使用的包,你可以列出兩種包:
“dependencies”:您的應用程序在生產中需要這些包。
“devDependencies”:這些包只用於開發和測試。
手動編輯package.json
您可以手動編輯package.json。您需要在包對象中創建一個名為dependencies的屬性,該屬性指向一個對象。這個對象將包含您希望使用的包的名稱屬性。它將指向一個semver表達式,該表達式指
定與您的項目兼容的項目版本。如果您有依賴關系,您只需要在本地開發期間使用,請遵循與上面相同的指示,但要使用名為devDependencies的屬性。
例如,下面的項目使用的my_dep包的任何版本與生產中的主要版本1匹配,並且需要my_test_framework包的任何版本與主要版本3匹配,但僅用於開發:
{ "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將查看該文件中dependencies列出的,並使用語義版本控制下載最新版本。
更多內容
