1. 程式人生 > 實用技巧 >package.json是什麼?_對package.json的理解和學習

package.json是什麼?_對package.json的理解和學習

package.json是什麼?

npm安裝package.json時 直接轉到當前專案目錄下用命令npminstall 或npminstall --save-dev安裝即可,自動將package.json中的模組安裝到node-modules資料夾下。

package.json就是管理你本地安裝的npm包,用於定義了這個專案所需要的各種模組,以及專案的配置資訊(比如名稱、版本、許可證等元資料)。一個package.json檔案可以做如下事情:

展示專案所依賴的npm包
允許你指定一個包的版本[範圍]
讓你建立起穩定,意味著你可以更好的與其他開發者共享

注意:npminit 時,使用者需回答一些問題,然後在當前目錄生成一個基本的package.json檔案。所有問題之中,只有專案名稱(name)和專案版本(version)是必填的,其他都是選填的。

package.json欄位說明

1、name

包的名稱,必須是唯一的,由小寫英文字母、數字和下劃線組成,不能包含空格

2、version

專案版本號,符合語義化版本識別規範的版本字串

3、description

專案描述,專案的簡要說明

4、keywords

{Array}關鍵詞陣列,便於使用者搜尋到我們的專案。

5、homepage

用於定義專案url主頁

6、bugs

提交bug的地址,專案問題反饋的Url或email配置,如:

{ 
“url” : “https://github.com/issues“, 
“email” : “[email protected]” 
}

  

7、license

專案許可證,讓使用者知道是如何被允許使用此專案。預設是”ISC”

8、author

定義該專案的作者。

9、private

代表npm是否釋出該專案。如果設定為true, 那麼npm會拒絕釋出它

10、scripts

指定了執行指令碼命令的npm命令列縮寫,比如start指定了執行npmrun start時,所要執行的命令。下面的設定指定了npm run dev、npm run bulid、npm run unit、npm run test、npm run lint時,所要執行的命令。如下:

"scripts": {
    "dev": "node build/dev-server.js",
    "build": "node build/build.js",
    "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
    "test": "npm run unit",
    "lint": "eslint --ext .js,.vue src test/unit/specs"
  },

  

11、dependencies,devDependencies

dependencies和devDependencies兩項,分別指定了專案執行所依賴的模組、專案開發所需要的模組。它們都指向一個物件,該物件的各個成員,分別由模組名和對應的版本要去組成,表示依賴的模組及其版本範圍

--save引數表示將該模組寫入dependencies屬性,
--save-dev表示將該模組寫入devDependencies屬性。

如下:

"dependencies": {
    "vue": "^2.2.2",
    "vue-router": "^2.2.0"
  },
  "devDependencies": {
    "autoprefixer": "^6.7.2",
    "babel-core": "^6.22.1",
    "babel-eslint": "^7.1.1",
    "babel-loader": "^6.2.10",
    "babel-plugin-transform-runtime": "^6.22.0",
    "babel-preset-env": "^1.2.1",
    "babel-preset-stage-2": "^6.22.0",
    "babel-register": "^6.22.0",
    "chalk": "^1.1.3",
}

  

12、config

config欄位用於向環境變數輸出值。

{ 
  "name" : "foo", 
  "config" : { "port" : "8080" }, 
  "scripts" : { "start" : "node server.js" } 
}

pixabayhttps://www.wode007.com/sites/73237.html wallhavenhttps://www.wode007.com/sites/73236.html

13、engines

指明瞭該專案所需要的node.js版本

"engines": {
   "node": ">= 4.0.0",
   "npm": ">= 3.0.0"
 },

  

14、bin

許多包有一個或多個可執行檔案希望被安裝到系統路徑。在npm下要這麼做非常容易(事實上,npm就是這麼執行的)。

這需要在你的package.json中提供一個bin欄位,它是一個命令名和本地檔名的對映。在安裝時,如果是全域性安裝,npm將會使用符號連結把這些檔案連結到prefix/bin,如果是本地安裝,會連結到./node_modules/.bin/。

比如,要使用myapp作為命令時可以這麼做:

{ "bin" : { "myapp" : "./cli.js" } }

  

這麼一來,當你安裝myapp,npm會從cli.js檔案建立一個到/usr/local/bin/myapp的符號連結(這使你可以直接在命令列執行myapp)。