package.json文件

http://javascript.ruanyifeng.com/nodejs/packagejson.html#toc7(copy)javascript

一般咱們使用npm init命令來建立一個npm程序時,會自動生成一個package.json文件。package.json文件會描述這個NPM包的全部相關信息,包括做者、簡介、包依賴、構建等信息,格式是嚴格的JSON格式。html

 

經常使用命令java

npm i --save packageName   安裝依賴包node

npm i --save-dev packageNamereact

npm i webpack@1.2.1   安裝指定版本的包,版本號用@符號鏈接linux

 

屬性介紹webpack

namegit

nameversion是package.json中最重要的兩個字段,也是發佈到NPM平臺上的惟一標識,若是沒有正確設置這兩個字段,包就不能發佈和被下載。es6

versiongithub

包的版本號。如"1.0.0"。

description

包的描述信息,將會在npm search的返回結果中顯示,以幫助用戶選擇合適的包。

keywords

包的關鍵詞信息,是一個字符串數組,同上也將顯示在npm search的結果中。

homepage

包的主頁地址。

bugs

包的bug跟蹤主頁地址。

license

包的開源協議名稱。

author

包的做者。

contributors, maintainers

包的貢獻者,是一個數組。

files(較少用)

包所包含的全部文件,能夠取值爲文件夾。一般咱們仍是用.npmignore來去除不想包含到包裏的文件。

main

包的入口文件。

bin(較少用)

若是你的包裏包含可執行文件,經過設置這個字段能夠將它們包含到系統的PATH中,這樣直接就能夠運行,很方便。

man(較少用)

爲系統的man命令提供幫助文檔。幫助文件的文件名必須以數字結尾,若是是壓縮的,須要以.gz結尾。

"man": ["./man/foo.1", "./man/bar.1", "./man/foo.2" ]

directories(較少用)

CommonJS包所要求的目錄結構信息,展現項目的目錄結構信息。字段能夠是:lib, bin, man, doc, example。值都是字符串。

repository

包的倉庫地址。

"repository": {
    "type": "git",
    "url": "git+https://github.com/rainnaZR/es6-react.git"
  },

scripts

經過設置這個可使NPM調用一些命令腳本,封裝一些功能。

"scripts": {"start": "babel-node src/pages/index.js",
    "build": "webpack --config config/webpack.config.js",
    "watch": "webpack-dev-server --config config/webpack.config.js --hot --inline --progress"
  }

config

添加一些設置,能夠供scripts讀取用,同時這裏的值也會被添加到系統的環境變量中。

"config": {
  "port": "8080"
}

npm start的時候會讀取到npm_package_config_port環境變量。

dependencies

指定依賴的其它包,這些依賴是指包發佈後正常執行時所須要的,也就是線上須要的包。使用下面的命令來安裝:

npm install --save packageName

若是是開發中依賴的包,能夠在devDependencies設置。

devDependencies

這些依賴只有在開發時候才須要。使用下面的命令來安裝:

npm install --save-dev packageName 

peerDependencies

相關的依賴,若是你的包是插件,而用戶在使用你的包時候,一般也會須要這些依賴(插件),那麼能夠將依賴列到這裏。

karma, 它的package.json中有設置,依賴下面這些插件:

複製代碼
"peerDependencies": {
  "karma-jasmine": "~0.1.0",
  "karma-requirejs": "~0.2.0",
  "karma-coffee-preprocessor": "~0.1.0",
  "karma-html2js-preprocessor": "~0.1.0",
  "karma-chrome-launcher": "~0.1.0",
  "karma-firefox-launcher": "~0.1.0",
  "karma-phantomjs-launcher": "~0.1.0",
  "karma-script-launcher": "~0.1.0"
}
複製代碼

bundledDependencies

綁定的依賴包,發佈的時候這些綁定包也會被一同發佈。

optionalDependencies(較少用)

即便這些依賴沒有,也能夠正常安裝使用。

engines(較少用)

指定包運行的環境。

"engines": {
  "node": ">=0.10.3 < 0.12",
  "npm": "~1.0.20"
}

os(較少用)

指定你的包能夠在哪些系統平臺下運行。

"os": [ "darwin", "linux", "!win32" ]

cpu(較少用)

能夠指定包運行的cpu架構。

private

設爲true這個包將不會發布到NPM平臺下。

publishConfig(較少用)

這個字段用於設置發佈時候的一些設定。尤爲方便你但願發佈前設定指定的tagregistry

 

以下:

複製代碼
{
  "name": "react",
  "version": "1.0.0",
  "description": "Command line instructions",
  "keywords": [
    "react",
    "es6",
    "react with es6"
  ],
  "homepage": "https://github.com/rainnaZR/es6-react",
  "bugs": {
    "url": "https://github.com/rainnaZR/es6-react",
    "email": "111@163.com"
  },
  "license": "ISC",
  "author": "ZRainna",
  "main": "src/pages/index.js",
  "directories": {
    "tests": "tests",
    "lib":"lib",
    "docs":"docs"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/rainnaZR/es6-react.git" }, "scripts": {"start": "babel-node src/pages/index.js", "build": "webpack --config config/webpack.config.js", "watch": "webpack-dev-server --config config/webpack.config.js --hot --inline --progress" }, "babel": { "presets": [ "es2015-node5" ] }, "devDependencies": { "webpack": "^1.13.2", "webpack-dev-server": "^1.16.1" }, "dependencies": { "babel-loader": "^6.2.5", "babel-preset-es2015": "^6.14.0", "babel-preset-react": "^6.11.1", "react": "^15.3.2", "react-dom": "^15.3.2", "react-redux": "^4.4.5", "react-router": "^2.8.1", "redux": "^3.6.0" } }
相關文章
相關標籤/搜索