2013年4月1日 星期一

node.js 一個package的檔案結構

node.js 的 package 其實就是個資料夾,裡面包覆各式各樣的檔案,他主要是以 commonJS來實現 node.js 的 package 的機制,所以說...,一個package底下的檔案,也要符合(如果可以當然是嚴格遵守) commonJs。
 
比方我的 package 叫做 you_package_folder,這是一個資料夾
一個 package 的目錄如果要符合commonJS(點選連結搜尋'Package Directory Layout')的規則的話,應該要有以下的檔案目錄或是檔案。
 

簡單說明一下這個目錄

  • package.json 是必要項目,身為一個package,不能沒有這個檔案,至於這個json檔案裏頭是什麼,格式就是json,以下介紹一些key :
    • main (必要):
      main的值就是當這個package被require的時候,甚麼檔案會被load進來,路徑通常是寫相對路徑。
    • name:
      這個package的名子,這個值是唯一值,他可以是英文小寫或者有. 或者有 '-' 或者有 '_',就是不能有空白。
      以我這個例子來說,name就會是這樣
      {
         "name": "Your_package_folder",
      }
    • version :
      版本號,格式是字串,而且要符合 Semantic Versioning 的規範。
    • maintainers :
      這個package的maintainer的資料,格式如下:
      每位maintainer的資料是一組hash(雜湊),有三種keyname(必填), email跟web是optional.,寫起來的範例如下:

      "maintainers" : [  {
         "name": "Win Wu",
         "email": "yiyingwu.1990[at]gmail.com",
        " web": "http://yiyingloveart.blogspot.com",
      } ]
    • description : 可以放一段針對你的package的描述
    • licenses : 授權方式,每一組licenses是個hash,有type(licenses的名稱)跟url(licenses的url)兩個key。

      範例:
      "licenses": [
         {
             "type": "GPLv2",
             "url": "http://demo_url/licenses/gpl.html",
         }
      ]
    • bugs : 值可以是email或是網址,提供一個給他人提交bug的位子
    • ....還有很多,請參考commonJS的wiki
  • doc資料夾,用來放一些文件
  • test資料夾,用來放一些unit test的檔案
  • bin資料夾,二進位的檔案必須放在這個資料夾
  • lib資料夾,用來放javascript的檔案


參考:
http://wiki.commonjs.org/wiki/Packages/1.1
http://wiki.commonjs.org/wiki/Packages-Background

沒有留言:

張貼留言

若你看的文章,時間太久遠的問題就別問了,因為我應該也忘了... XD

Vue multiselect set autofocus and tinymce set autofocus

要在畫面一進來 focus multiselect 的方式: 參考: https://jsfiddle.net/shentao/mnphdt2g/ 主要就是在 multiselect 的 tag 加上 ref (例如: my_multiselect), 另外在 mounted...