2014年6月29日 星期日

NodeJS 教學 - NPM 介紹(2)

當你要建立一個 Node 的應用程式時,多數都是需要一個定義應用程式的資訊的地方

包括名稱、作者、依賴關係...等眾多的 meta 資訊,而定義這些資訊的檔案叫做 package.json

它必須位在你專案 root 下,package.json 可以幫助你 publish 你的應用程式到 NPM 上,

就算你沒有要這樣做,你也是需要利用它來管理你的依賴關係(dependencies)

而一個最簡單的 package.json 檔案必須包含 name 和 version,如下:

{
    "name": "demo-app",
    "version": "0.0.1"
}

其中 package.json 必須遵循一個標準的 JSON 的格式來撰寫

接下來說明一些常用的或是重要的屬性:




  • Authors & Contributors
          用來描述 Package 的作者資訊以及貢獻者的資訊
          透過 author 與 contributor s
          "author": {

   "name": "Allen Fang",
   "email": "ayu780129@gmail.com"
    },
    "contributors": [{
   "name": "Contributor1",
   "email": "Contributor1@mail.com"
    },{
   "name": "Contributor2",
   "email": "Contributor1@mail.com"
    }]

  • Description & Key word
          描述 Package 的內容以及相關的關鍵字,以便讓 NPM 能夠分類以利搜尋
          "description": "This is a sample module for learning",
    "keywords": [
"sample",
"nodejs"
    ],
    "author": {
"name": "Allen Fang",
"email": "ayu780129@gmail.com"
    }
      
  • Dependencies
          以上的 Author、Contributors、Description 等等的,如果你並沒有打算要把
          Package publish 到 NPM 上,其實不寫是沒關係的,而 Dependencies 
          則是整個 package.json 中最重要的欄位,它是用來描述你的 Package 有依賴哪些
          第三方的 Packages,同樣也是可有可無。如下所示:
          "dependencies": {
          "express": "4.4.4"
    }
          
          通常我們並不會在 package.json 直接寫上這些依賴關係,如果你的 Package 需要依賴
          express 的話,你可以在 Package root 下這樣的指令 npm insall --save express
          你會發現在 root 目錄下會出現 node_module 資料夾,內有 express package,
          另外 NPM 會幫你在 package.json 加上
          "dependencies": {
          "express": "~4.4.4"
    }
          所以如果額外加了 --save,NPM 會幫你在 package.json 加上 dependencies
          你可以不需要手動自己撰寫喔!!

  • Developmental Dependencies
          當你在開發一個應用程式時,一定會有一些依賴的 Packages 是只有在開發時才會需要
          在 Production 時是不需要的,因此可以加在 "devDependencies" 欄位,同樣的建議你用
          --save-dev 讓 NPM 自動幫你在 package.json 內加上依賴的 Package 在 devDependencies 欄位內

  • Scripts
          讓你能夠在 Command line 執行時多加入一些額外的參數以執行一些額外的工作,
          最常見的就是設定一些環境參數、執行測試或是啟動 server 之類的工作,範例如下:
          "scripts": {
       "config": "node config.js"
    }
          上面我定義了 config 參數,當我在 root 下 npm config
          NPM 會去執行 "node config.js" 這行指令

   
最後建議大家盡量透過 npm init 來建立你的 package.json,不要手動自己敲

它會指引你建立一個完整的 package.json ,過程我就不再多加撰述了

沒有留言:

張貼留言