一、概述
在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)
版本範圍