極簡package.json瞭解

一、概述

在Node。js中,模組是一個庫或框架,也是一個Node。js專案。Node。js專案遵循模組化的架構,當我們建立了一個Node。js專案,意味著建立了一個模組,這個模組的描述檔案,被稱為package。json。

每個專案的根目錄下面,一般都有一個

package。json

檔案,定義了這個專案所需要的各種模組,以及專案的配置資訊(比如名稱、版本、許可證等元資料)。

npm install

命令根據這個配置檔案,自動下載所需的模組,也就是配置專案所需的執行和開發環境。

npm和yarn安裝的包都會被記錄在package。json中。但是他們會有各自的dependency lock檔案,npm的是pakage-lock。json, yarn的是yarn。lock。

二、package。json屬性說明

name:專案/模組名稱,長度必須小於等於214個字元,不能以“。”(點)或者“_”(下劃線)開頭,不能包含大寫字母。

version:專案版本。

author:專案開發者,它的值是你在https://npmjs。org網站的有效賬戶名,遵循“賬戶名<郵件>”的規則,例如:zhangsan zhangsan@163。com。

description:專案描述,是一個字串。它可以幫助人們在使用npm search時找到這個包。

keywords:專案關鍵字,是一個字串陣列。它可以幫助人們在使用npm search時找到這個包。

private:是否私有,設定為 true 時,npm 拒絕釋出。

license:軟體授權條款,讓使用者知道他們的使用權利和限制。

bugs:bug 提交地址。

contributors:專案貢獻者 。

repository:專案倉庫地址。

homepage:專案包的官網 URL。

dependencies:生產環境下,專案執行所需依賴。

devDependencies:開發環境下,專案所需依賴。

scripts:執行 npm 指令碼命令簡寫,比如 “start”: “react-scripts start”, 執行 npm start 就是執行 “react-scripts start”。

bin:內部命令對應的可執行檔案的路徑。

main:專案預設執行檔案,比如 require(‘webpack’);就會預設載入 lib 目錄下的 webpack。js 檔案,如果沒有設定,則預設載入專案跟目錄下的 index。js 檔案。

module:是以 ES Module(也就是 ES6)模組化方式進行載入,因為早期沒有 ES6 模組化方案時,都是遵循 CommonJS 規範,而 CommonJS 規範的包是以 main 的方式表示入口檔案的,為了區分就新增了 module 方式,但是 ES6 模組化方案效率更高,所以會優先檢視是否有 module 欄位,沒有才使用 main 欄位。

eslintConfig:EsLint 檢查檔案配置,自動讀取驗證。

engines:專案執行的平臺。

browserslist:供瀏覽器使用的版本列表。

style:供瀏覽器使用時,樣式檔案所在的位置;樣式檔案打包工具parcelify,透過它知道樣式檔案的打包位置。

files:被專案包含的檔名陣列。

三、版本規則

提示:node的各種包都有版本控制,迭代都非常快,版本號用用三個數字分別用。分割來標記每個版本,比如1。2。3 其中第三位3表示微小的變動,2表示比較大的變動,1表示升級;

符號

說明

version

精準匹配版本號

> version

必須大於某個版本

>=version

必須大於或等於某個版本

< version

必須小於某個版本

<=version

必須小於或等於某個版本

~version

不改變大版本號和次要版本號,小版本號隨意

^version

版本號最左邊非 0 數字的右側可以任意

version號位置出現 X

X 的位置表示任意版本

version使用 * 代替

任意版本

version(1) - version(2)

版本範圍