dependencies字段,devDependencies字段
dependencies字段指定了項目運行所依賴的模塊,devDependencies指定項目開發(fā)所需要的模塊。
它們都指向一個對象。該對象的各個成員,分別由模塊名和對應的版本要求組成,表示依賴的模塊及其版本范圍。
{"devDependencies":{"browserify":"~13.0.0","karma-browserify":"~5.0.1"}}
對應的版本可以加上各種限定,主要有以下幾種:
指定版本:比如1.2.2,遵循“大版本.次要版本.小版本”的格式規(guī)定,安裝時只安裝指定版本。
波浪號(tilde)+指定版本:比如~1.2.2,表示安裝1.2.x的最新版本(不低于1.2.2),但是不安裝1.3.x,也就是說安裝時不改變大版本號和次要版本號。
插入號(caret)+指定版本:比如?1.2.2,表示安裝1.x.x的最新版本(不低于1.2.2),但是不安裝2.x.x,也就是說安裝時不改變大版本號。需要注意的是,如果大版本號為0,則插入號的行為與波浪號相同,這是因為此時處于開發(fā)階段,即使是次要版本號變動,也可能帶來程序的不兼容。
latest:安裝最新版本。
package.json文件可以手工編寫,也可以使用npm init命令自動生成。
$npm init
這個命令采用互動方式,要求用戶回答一些問題,然后在當前目錄生成一個基本的package.json文件。所有問題之中,只有項目名稱(name)和項目版本(version)是必填的,其他都是選填的。
有了package.json文件,直接使用npm install命令,就會在當前目錄中安裝所需要的模塊。
$npm install
如果一個模塊不在package.json文件之中,可以單獨安裝這個模塊,并使用相應的參數(shù),將其寫入package.json文件之中。
$npm install express --save$npm install express --save-dev
上面代碼表示單獨安裝express模塊,--save參數(shù)表示將該模塊寫入dependencies屬性,--save-dev表示將該模塊寫入devDependencies屬性。