- Node.js 12實(shí)戰(zhàn)
- 趙榮嬌
- 755字
- 2022-07-27 19:18:54
2.1.3 package.json屬性說(shuō)明
NPM在package.json文件中管理項(xiàng)目的依賴(lài)項(xiàng)以及項(xiàng)目的元數(shù)據(jù)。
node執(zhí)行require指令時(shí),會(huì)根據(jù)package.json中的依賴(lài)項(xiàng)執(zhí)行查找。每個(gè)項(xiàng)目的根目錄下面,一般都有一個(gè)package.json文件,定義了這個(gè)項(xiàng)目所需要的各種模塊,以及項(xiàng)目的配置信息(如項(xiàng)目名稱(chēng)、版本號(hào)、許可證等元數(shù)據(jù))。npm install命令會(huì)根據(jù)這個(gè)配置文件,自動(dòng)下載所需的模塊,也就是配置項(xiàng)目所需的運(yùn)行和開(kāi)發(fā)環(huán)境。例如:

package.json文件就是一個(gè)JSON對(duì)象,該對(duì)象的每一個(gè)成員就是當(dāng)前項(xiàng)目的一項(xiàng)基礎(chǔ)設(shè)置信息,各成員說(shuō)明如下:
· Name:包名。
· Version:包的版本號(hào),語(yǔ)義版本號(hào)分為X.Y.Z三位,分別代表主版本號(hào)、次版本號(hào)和補(bǔ)丁版本號(hào)。
· Description:包的描述。
· Homepage:包的官網(wǎng)地址。
· Author:包的作者姓名。
· Contributors:包的其他貢獻(xiàn)者姓名。
· Dependencies:依賴(lài)包列表,指定了項(xiàng)目運(yùn)行所依賴(lài)的模塊。如果依賴(lài)包沒(méi)有安裝,npm就會(huì)自動(dòng)將依賴(lài)包安裝在node_module目錄下。
· devDependencies:指定項(xiàng)目開(kāi)發(fā)所需要的模塊。
· repository:包代碼存放的地方的類(lèi)型,可以是Git或Svn,Git可在GitHub上。
· main:main字段指定了程序的主入口文件,require('moduleName')就會(huì)加載這個(gè)文件。這個(gè)字段的默認(rèn)值是模塊根目錄下面的index.js。
· keywords:關(guān)鍵字。
· scripts:指定了運(yùn)行腳本命令的npm命令行縮寫(xiě),比如start指定了運(yùn)行npm run start時(shí)所要執(zhí)行的命令。
· bin:用來(lái)指定各個(gè)內(nèi)部命令對(duì)應(yīng)的可執(zhí)行文件的位置。
· config:用于添加命令行的環(huán)境變量。
package.json文件可以手工編寫(xiě),也可以使用npm init命令自動(dòng)生成:
npm init
這個(gè)命令采用交互方式要求用戶(hù)回答一些問(wèn)題,然后在當(dāng)前目錄生成一個(gè)基本的package.json文件。所有問(wèn)題之中,只有項(xiàng)目名稱(chēng)(name)和項(xiàng)目版本(version)是必填的,其他都是選填的。
有了package.json文件,直接使用npm install命令就會(huì)在當(dāng)前目錄中安裝所需要的模塊。
$ npm install
如果一個(gè)模塊不在package.json文件中,可以單獨(dú)安裝這個(gè)模塊,并使用相應(yīng)的參數(shù)將其寫(xiě)入package.json文件中:
$ npm install express --save $ npm install express --save-dev
這兩行代碼表示單獨(dú)安裝express模塊,--save參數(shù)表示將該模塊寫(xiě)入dependencies屬性,--save-dev表示將該模塊寫(xiě)入devDependencies屬性。
- UML和模式應(yīng)用(原書(shū)第3版)
- The Modern C++ Challenge
- C語(yǔ)言程序設(shè)計(jì)(第3版)
- C語(yǔ)言程序設(shè)計(jì)(第2版)
- 實(shí)戰(zhàn)低代碼
- 網(wǎng)店設(shè)計(jì)看這本就夠了
- 深入RabbitMQ
- Java網(wǎng)絡(luò)編程實(shí)戰(zhàn)
- 詳解MATLAB圖形繪制技術(shù)
- QGIS Python Programming Cookbook(Second Edition)
- 會(huì)當(dāng)凌絕頂:Java開(kāi)發(fā)修行實(shí)錄
- 數(shù)據(jù)結(jié)構(gòu):Python語(yǔ)言描述
- Visual Basic程序設(shè)計(jì)基礎(chǔ)
- Learning RSLogix 5000 Programming
- PostGIS Cookbook