基礎(chǔ)配置文件package.json
package.json文件是任何一個用npm管理的項目的基礎(chǔ)配置文件,文件中包含了項目所要用到的所有依賴和腳本;
-
基礎(chǔ)屬性
- name:項目名稱
- version: 項目版本,version必須可以被npm依賴的一個node-semver模塊解析
package.json必須是一個嚴(yán)格的json文件,其中最重要的是name和version兩個屬性,這兩個屬性必須要有尖飞,否則模塊就無法被安裝,這兩個屬性一起形成了一個npm模塊的唯一標(biāo)識店雅。模塊中內(nèi)容變更的同時政基,版本也一起變化。
- scripts屬性
scripts屬性是一個對象闹啦,這個對象中指定了項目的生命周期各個環(huán)節(jié)需要執(zhí)行的命令(key是生命周期中的事件沮明,value是要執(zhí)行的命令)
上圖是使用vue-cli腳手架時package.json里關(guān)于scripts屬性的命令項:
- “start”:啟動命令,運(yùn)行npm run dev時啟動項目
-
“dev”:
每次執(zhí)行此命令時首先去加載webpack.dev.conf.js文件窍奋;
--host 0.0.0.0在瀏覽器以IP地址形式打開珊擂;
“bulid”:build命令對應(yīng)的腳本是node build.js,命令行下使用npm run命令费变,就可以執(zhí)行這段腳本摧扇。
$ npm run build
// 等同于執(zhí)行
$ node build.js
這些定義在npm中的腳本,就稱之為npm腳本挚歧。每當(dāng)執(zhí)行npm run扛稽,就自動新建一個shell,在這個shell里面執(zhí)行指定的腳本命令滑负。因此在张,只要是shell可以運(yùn)行的命令用含,就可以寫在npm腳本里面。
- dependencies屬性
dependencies屬性指定了項目運(yùn)行所依賴的模塊帮匾,對象中各個成員分別由模塊名和版本組成啄骇,表示所依賴的模塊及其版本范圍;
其中版本遵循“大版本.次要版本.小版本”的格式瘟斜,版本范圍的安裝有以下幾種形式:
- 指定版本:安裝時只安裝指定版本缸夹。
- 波浪號+版本號:比如~1.2.2,表示安裝1.2.x的最新版本(不低于1.2.2)螺句,但是不安裝1.3.x虽惭,也就是說安裝時不改變大版本號和次要版本號,只改變小版本號蛇尚。
- 插入號+版本號:比如?1.2.2芽唇,表示安裝1.x.x的最新版本(不低于1.2.2),但是不安裝2.x.x取劫,也就是說安裝時不改變大版本號匆笤。需要注意的是,如果大版本號為0谱邪,則插入號的行為與波浪號相同炮捧,這是因為此時處于開發(fā)階段,即使是次要版本號變動虾标,也可能帶來程序的不兼容寓盗。
- latest:安裝最新版本灌砖。
- devDependencies屬性
devDependencies屬性指定了項目開發(fā)所需要的模塊璧函;
在使用 npm install xxx 安裝模塊時,--save參數(shù)表示將該模塊寫入dependencies屬性基显,--save-dev表示將該模塊寫入devDependencies屬性
-
engines 屬性
engines 屬性指明了該模塊運(yùn)行的平臺
- browserslist屬性
browserslist屬性指明了對瀏覽器的要求蘸吓,這個配置文件時vue-cli腳手架內(nèi)package.json文件,因此指明了vue不支持IE8