package.json是nodejs開發(fā)時候會經(jīng)常使用到的配置文件壁顶,即使不使用Node進行開發(fā),在使用grunt(依賴node和npm)進行自動化構(gòu)建的時候也會使用到package.json杀捻。希望通過這篇文章簡單梳理一下package.json的基本要點。
官方文檔:https://docs.npmjs.com/files/package.json
1.文件格式:JSON
? ? package.json必須滿足嚴格的JSON語法蚓庭。
2.簡單的示例
? ? {
? ? ? ? "name":"testABCApp",
? ? ? ? "version":"0.0.1"
? ? }
? ? name和version是最重要的兩個字段致讥。
3.字段解析
? ? name:程序名稱,必須小于等于214個字符器赞,不能以.和_開頭垢袱,不能以js或者node作為名稱。
? ? version:版本號,常用格式:1.0.0,滿足node-semver
? ? description:描述
? ? keywords:關(guān)鍵字,Array
? ? homepage:主頁
? ? bugs:報告bug信息港柜,示例:{"url":"issues in github here","email":"email here"}
? ? license:示例:{ "license" : "BSD-3-Clause" }
? ? dependencies:定義依賴關(guān)系请契,參考下一節(jié)內(nèi)容。
? ? devDependencies:開發(fā)依賴關(guān)系夏醉,不跑測試與文檔的腳本爽锥。
? ? scripts:腳本,根據(jù)事件定義要出發(fā)的腳本畔柔,事件定義在npm-scripts中氯夷,可以在特定中執(zhí)行自定義的腳本。
4.深入理解dependencies
? ? dependencies依賴關(guān)系通過一張map來實現(xiàn)靶擦,key是包的名字腮考,value是版本號信息雇毫。
? ? 其中版本號信息的定義如下
? ? version:必須是該版本
? ? >version:大于此版本
? ? >=,<=,< 大于等于,小于等于踩蔚,小于此版本
? ? ~version:子版本兼容棚放,例如1.2.3是1.2.3-1.3.0(不含)之間,1.2等于1.2.x,1等于1.x馅闽。
? ? ^version:主版本兼容飘蚯,例如1.2.3是1.2.3-2.0.0(不含)之間,0.2.3表示0.2.3-0.3.0之間福也。
? ? 1.2.x:1.2.0,1.2.1等等
? ? *:所有版本
? ? version1-version2:>=version1 && <=version2