package.json---解析__javascript

來源:互聯網
上載者:User

之前看了蠻久阮大師的javascript標準參考教程。
前面和邊上的妹紙關於dependencies和devDependencies討論了一下,看來還是要梳理一下知識點。
(講道理,用了部落格一個多月,整理了一些知識點,有時候用到想不起來就過來查一下,很方便,新技能get。 []~( ̄▽ ̄)~*)

每個項目的根目錄下一般都有一個package.json檔案,定義項目所需要的各種模組,以及項目的配置資訊。npm install則是根據這個設定檔,自動下載所需要的模組,也就是設定項目所需的運行和開發環境。
package.json檔案可以手工編寫,也可以用npm init命令自動產生,除了項目名稱和項目版本是必填的,其他都是選填的。 最簡單的package.json

{    "name":"aaa",       //項目名稱    "version":"0.0.0"   //項目版本(大版本.次要版本.小版本)}

package是一個JSON對象,對象的每個成員就是當前項目的一項設定。 script欄位

script指定運行指令碼命令的npm命令列縮寫。

"script":{    "start":"node index.js",    "test":"tap test/*.js"}//運行npm run start時,執行node index.js命令//運行npm run test時,執行tap test/*.js命令
dependencies欄位,devDependencies欄位

dependencies欄位指定項目運行所依賴的模組。
devDependencies欄位指定項目開發所需要的模組。

{    "devDependencies":{        "browserify":"~13.0.0",        "babel-core":"^6.5.0"           }}//模組名:對應的版本

對應的版本:

指定版本: 比如1.2.2,安裝時只安裝指定版本1.2.2

波浪號(tilde) + 指定版本:比如~1.2.2,表示安裝不低於1.2.2的1.2.x最新版本,但是不會安裝1.3.x,等於只會影響小版本的版本號碼。

插入號(caret) + 指定版本 : 比如^1.2.2,表示安裝不低於1.2.2的1.x.x最新版本,但是不會安裝2.x.x,等於不會影響大版本號碼。如果大版本號碼為0,則插入號和波浪號效果一樣,不會改變次要版本號碼。

latest:安裝最新的版本

如果一個模組不在package.json檔案匯總,則可以單獨安裝這個模組,並使用相應的參數將其寫入package.json中。

 $ npm install express --save $ npm install express --save-dev

例如安裝上面的express模組,–save表示將模組寫入dependencies屬性,–save-dev表示將模組寫入devDependencies屬性。 peerDependencies

假設項目依賴A模組和B模組的1.0版本,那麼依賴裡面寫A:1.0,B:1.0,但是A模組本身依賴B模組的2.0版本,然後不知道,用的時候報錯了。這就很尷尬了。這時候就可以用peerDependencies,用來供A模組指定其所需要的主工具的版本。

{    "name": "chai-as-promised",    "peerDependencies": {        "chai": "1.x"      }}

在A模組內部的package裡面寫。這樣就是說在安裝chai-as-promised時,chai必須一起安裝。如果項目指定的依賴是chai的2.0版本就報錯。
npm從3.0版本開始peerDependencies不再預設安裝。。- -… bin欄位

bin用來指定各個內部命令對應的可執行檔的位置。

"bin":{    "someTool":"./bin/someTool.js"}//someTool命令對應可執行檔為bin子目錄下的someTool.js
main欄位

main欄位指定載入的入口檔案,require(‘moduleName’)就會載入這個檔案。預設為根目錄下的index.js config欄位

用於向環境變數輸出值

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

//server.js引用欄位的值
http.createServer(…).listen(process.env.npm_package_con fig_port) browser欄位

指定該模板供瀏覽器使用的版本。 engines欄位

指明項目所需要的node.js版本 man欄位

指定當前模組的man文檔位置 preferGlobal欄位

布爾值,使用者不將該模組安裝為全域模組時,要不要顯示警告。 style欄位

供指定瀏覽器使用,樣式檔案所在的位置。

我是看著阮大師的文檔大致寫了下,加深自己的記憶。剛才項目上碰到依賴問題還真的派上用場了。厲害了。
連結地址:http://javascript.ruanyifeng.com/nodejs/packagejson.html#toc0

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.