1. 程式人生 > 實用技巧 >package.json 配置全解

package.json 配置全解

預設值

  • "scripts": {"start": "node server.js"}
    如果包的根目錄有server.js檔案,npm會預設將start命令設定為node server.js
  • "scripts":{"preinstall": "node-waf clean || true; node-waf configure build"}
    如果包的根目錄有wscript檔案,npm會預設將preinstall命令用node-waf進行編譯。
  • "scripts":{"preinstall": "node-gyp rebuild"}
    如果包的根目錄有binding.gyp檔案,npm會預設將preinstall
    命令用node-gyp進行編譯。
  • "contributors": [...]
    如果包的根目錄有AUTHORS檔案,npm會預設逐行按Name <email> (url)格式處理,郵箱和url是可選的。#號和空格開頭的行會被

name

包名,必填

version

包版本 ,x.x.x 要符合語義化版本規則 ,必須能被node-server解析

改變包應該同時改變version

description

包的描述,便於在 npm search 中查詢包

keywords

關鍵字 陣列 字串。方便npm search 中查詢

homepage

專案官網的url

main

入口檔案,一般是index.js

scripts

指定的執行指令碼的npm命令列縮寫,預設是空的test

author

作者的資訊

license

許可證,預設是ISC 有的預設是MIT ;

你應該要指定一個許可證,讓人知道使用的權利和限制的。

如果你又更復雜的許可條件,或者想要提供給更多地細節,可以這樣:

"licenses":[{"type":"MyLicense","url":"http://github.com/owner/project/path/to/license"}]​​ 

bugs

專案提交問題的url 和(或)郵件地址。 可以是物件也可以是字串

{"url":"http://github.com/owner/project/issues"
,"email":"[email protected]"
}​ 

files

是包裡面包含檔案的陣列。如果包含資料夾,則資料夾下面的檔案都包含。也可以用.npmignore檔案。

bin

repository

程式碼存放的地址

config

欄位用於新增命令列的環境變數

"config" hash可以用來配置用於包指令碼中的跨版本引數。在例項中,如果一個包有下面的配置:

{"name":"foo"
,"config":{"port":"8080"}} 

然後有一個“start”命令引用了npm_package_config_port環境變數,使用者可以通過npm config set foo:port 8001來重寫他。

dependencies

在生產環境中需要用到的依賴

devDependencies

在開發、測試環境中用到的依賴

browserslist

指定該模板供瀏覽器使用的版本

"repository":
{"type":"git"
,"url":"http://github.com/isaacs/npm.git"
}

"repository":
{"type":"svn"
,"url":"http://v8.googlecode.com/svn/trunk/"
}​