Node.js中的" 包 "

  • CommonJS的包規範給程序員提供了組織模塊的標準,減小溝通成本node

  • 包的使用:程序員

    • 全部模塊放在一個文件夾(包名)
    • 包放在當前項目中的node_modules文件夾下
    • 包中定義一個index.js(文件名不能夠更改)導出全部模塊
    • 引用包(約定大於配置)
  • 導入包的執行過程 require("calc")npm

    • 將calc當作核心模塊加載,加載不成功
    • 自動去當前目錄中的node_modules中找文件名爲calc的包
    • 自動去calc找index.js的出口模塊(導出的模塊)
    • 若是找不到index.js報錯,若是想要改出口模塊,須要package.json配置文件
  • package.jsjson

名稱 功能
name 包名稱
description 包介紹,介紹包的功能
version 版本號,用於版本控制
keywords 關鍵詞數組,用於在npm中搜索
main require引入包時優先檢查此字段
dependencies 標記當前包所依賴的包列表,npm會自動加載依賴的包
Author 包做者
License 開源許可
{
  "name": "calcpack", 
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {   //能夠經過npm run來執行
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}
  • 建立包的標準方式數組

    • npm init -y 自動建立package.json
  • 一個標準包的結構app

名稱 |功能 |---|---| package.js |包描述文件 bin |存放可執行文件 lib |存放JavaScript代碼 doc |存放文檔 test |存放單元測試用例代碼 README.md |說明文檔,描述包的做用和用法單元測試

  • 標準包執行過程
    • 將calcpack當作核心模塊加載,加載不成功
    • 自動去當前目錄中的node_modules中找文件名爲calcpack的包
    • 若是在calcpack中有package.json的話,而且指定了main屬性的值,優先加載main指定的.js模塊(出口模塊)
    • 若是沒有package.json,或沒有指定main屬性,自動去calcpack找index.js的出口模塊(導出的模塊)
    • 若是找不到index.js報錯
相關文章
相關標籤/搜索