天天看點

nodejs筆記2 包管理 npm包npm子產品加載package-lock.jsonpackage.json

即nodejs第三方子產品

npm

包管理工具

切換包鏡像源

淘寶源

npm config set registry=https://registry.npm.taobao.org/

nrm 鏡像源管理工具

  • 安裝
npm i nrm -g
  • 檢視所有可用鏡像源
nrm ls
  • 切換鏡像源
nrm use taobao

i5ting_toc MD轉HTML工具

  • 安裝
npm i i5ting_toc -g
  • 使用
i5ting_toc -f readme.md -o

釋出npm包

  • 登入npm
npm login
  • 釋出
npm publish
  • 删除(隻能删除72小時内釋出的包,删除的包24小時内不允許重複釋出)
npm unpublish pkgname --force

子產品加載

require(module_name)

  • 優先加載緩存
  • 内置子產品優先級最高,node_modules中有内置子產品重名子產品不會被加載
  • 加載自定義子產品是必須指定以./或…/開頭的路徑,否則将當作内置子產品或第三方子產品加載
  • 自定義子產品檔案加載順序:
  1. 确切檔案名對應檔案
  2. 補.js擴充名
  3. 補.js擴充名
  4. 補.node擴充名
  5. 報錯
  • 如果子產品辨別符不是内置子產品,也沒有./或…/開頭,則從目前子產品的父目錄開始,嘗試從/node_modules檔案夾加載第三方子產品
  • 如果目前目錄沒有找到第三方子產品,則移動到上一層目錄查找/node_modules,直到根目錄
  • 子產品辨別符是目錄時加載順序:
  1. 目錄下查找package.json檔案,尋找main屬性作為加載入口
  2. 沒有package.json,或main不存在,則嘗試加載目錄下index.js
  3. 沒有index.js, 報錯

package-lock.json

記錄node_modules目錄下每個包的下載下傳資訊(包名,版本,下載下傳位址)

package.json

包管理配置檔案

  • 項目基本資訊(名稱,版本,描述)
  • main(包的入口,通過require導入包時,自動導入main指向的js檔案,是以自定義包時,需要通過入口js檔案暴露其他js檔案子產品)
  • 依賴的包(開發,部署各自所依賴的包)
  1. 建立包管理配置檔案
npm init -y
  1. 安裝包(自動下載下傳包,并将包資訊記錄到package.json,如果隻需要安裝到開發環境,例如webpack,後面追加參數–save-dev)
npm install pkgname
  1. 一次性安裝所有包(安裝package.json中記錄的所有包)
npm install
  1. 解除安裝包(自動删除package.json中依賴資訊)
npm uninstall pkgname