nodejs package.json詳解
阿新 • • 發佈:2019-02-02
每個專案的根目錄下面,一般都會有package.json檔案,定義了這個專案中所需各種模板及專案中的配置資訊。npm install命令根據這個配置檔案,自動下載所需的模組,也就是配置專案中所需的執行和開發環境。
仔細觀察package.json檔案可以發現其內部就是一個json物件,該物件的每一個成員就是當前專案的一項設定。
package.json可配置項
name:專案名稱
deecription:應用專案描述
version 版本號
config:應用的配置項
author:作者
respository:資源倉庫地址
licenses:授權方式
directories:目錄
main:應用入口檔案
bin:命令列檔案
dependencries:專案應用執行依賴模組
devDependencies:專案應用開發環境依賴
engines:執行引擎,指明node.js執行所需要的版本
script:指令碼
完整配置
{ //專案名稱 "name": "demo", //版本號(遵守“主版本.次要版本.補丁號”的格式 "version": "1.0.0", //description描述你的模組,或者搜尋 "description": "vue.js js iview ", //main欄位指定了載入的入口檔案,即主檔案 "main": "app.js", // scripts指定了執行指令碼命令的npm命令列縮寫,比如start指定了執行npm start時,所要執行的命令。 "scripts": { "start": "node index.js" }, //repository(倉庫)指定一個程式碼存放地址 "repository": { "type": "git", "url": "git+https://github.com/XXXX" }, //作者 "author": "mayuan", //授權方式 "license": "MIT", //指明node.js執行所需要的版本 "engines": { "node": "0.10.x" }, "bugs": { "url": "https://github.com/XXXX" }, // 一個字串陣列,方便別人搜尋到本模組 "keywords": [ "vue","iview" ], //devDependencies指定專案開發所需要的模組 "devDependencies": { "babel-core": "^6.23.1", "babel-loader": "^6.3.2", "babel-preset-es2015": "^6.22.0", "vue-html-loader": "^1.0.0", "vue-loader": "^8.5.2", "vue-style-loader": "^1.0.0", "webpack": "^1.13.2" }, //dependencies欄位指定了專案執行所依賴的模組 "dependencies": { "express": "latest", //指定express是最新版本 "mongoose": "~3.8.3", "handlebars-runtime": "~1.0.12", "express3-handlebars": "~0.5.0", "MD5": "~1.2.0" } }
有了package.json檔案,直接使用npm install命令,就會在當前目錄中安裝所需要的模組
npm install
如果一個模組不在package.json檔案之中,可以單獨安裝這個模組,並使用相應的引數,將其寫入package.json檔案之中。以載入“ejs”模組為例
npm install ejs --save
npm install ejs --save-dev
上面程式碼表示單獨安裝ejs模組。--save表示將該模組寫入dependencies屬性,--save -dev表示將該模組寫入devDependencies屬性。同時省略則表示不寫入package.json檔案中。
補充:
模板下載之後可以檢視訪問各個模組版本及最新版本。我是採用webstorm開啟專案的,具體操作如下
1、選擇File->settings->Languages&Frameworks->Node.js and NPM
當然,這的大前提是需要你在webstorm中配置node.js資訊。
版本號
表示式 | 版本範圍 |
>=1.2.7 | 大於等於1.2.7 |
>=1.2.7 <1.3.0 | 1.2.7,1.2.8,1.2.9 |
1.2.3-2.3.4 | >=1.2.3 <=2.3.4 |
1.2-2.3.4 | >=1.2.0 <=2.3.4 |
1.2.3-2.3 | >=1.2.3 <2.4.0 |
1.2.3-2 | >=1.2.3 <3.0.0 |
* | >=0.0.0 |
1.x(等價於1.X) | >=1.0.0 <2.0.0 |
1.2.x | >=1.2.0 <3.0.0 |
""(等價於*) | >=0.0.0 |
1(等價於1.x.x) | >=1.0.0.0 <2.0.0 |
1.2(等價於1.2.x) | >=1.2.0 <1.3.0 |
~1.2.3(>=1.2.3 <1.(2+1).0) | >=1.2.3 <1.3.0 |
~1.2(>=1.2.0 <1.(2+1).0) | >=1.2.0 <1.3.0 |
~1(>=1.0.0 <(1+1).0.0) | >=1.0.0 <2.0.0 |
~0.2.3(>=0.2.3 <0.(2+1).0) | >=0.2.3 <0.3.0 |
~0.2(>=0.2.0 <0.(2+1).0) | >=0.2.0 <0.3.0 |
~9(>=0.0.0 <(0+1).0.0) | >=0.0.0 <1.0.0 |
~1.2.3-beta.2 | >=1.2.3-beta.2 <1.3.0 |
^1.2.3 | >=1.2.3 <2.0.0 |
^0.2.3 | >=0.2.3 <0.3.3 |
^0.0.3 | >=0.0.3 <0.0.4 |
^1.2.3-beta.2 | >=1.2.3-beta.2 <2.0.0 |
^0.0.3-beta | >=0.0.3 <0.0.4 |
^1.2.x | >=1.2.0 <2.0.0 |
^0.0.x | >=0.0.0 <0.1.0 |
^0.0 | >=0.0.0 <0.1.0 |
^1.x | >=1.0.0 <2.0.0 |
^0.x | >=0.0.0 <1.0.0 |