包
即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中有内置子產品重名子產品不會被加載
- 加載自定義子產品是必須指定以./或…/開頭的路徑,否則将當作内置子產品或第三方子產品加載
- 自定義子產品檔案加載順序:
- 确切檔案名對應檔案
- 補.js擴充名
- 補.js擴充名
- 補.node擴充名
- 報錯
- 如果子產品辨別符不是内置子產品,也沒有./或…/開頭,則從目前子產品的父目錄開始,嘗試從/node_modules檔案夾加載第三方子產品
- 如果目前目錄沒有找到第三方子產品,則移動到上一層目錄查找/node_modules,直到根目錄
- 子產品辨別符是目錄時加載順序:
- 目錄下查找package.json檔案,尋找main屬性作為加載入口
- 沒有package.json,或main不存在,則嘗試加載目錄下index.js
- 沒有index.js, 報錯
package-lock.json
記錄node_modules目錄下每個包的下載下傳資訊(包名,版本,下載下傳位址)
package.json
包管理配置檔案
- 項目基本資訊(名稱,版本,描述)
- main(包的入口,通過require導入包時,自動導入main指向的js檔案,是以自定義包時,需要通過入口js檔案暴露其他js檔案子產品)
- 依賴的包(開發,部署各自所依賴的包)
- 建立包管理配置檔案
npm init -y
- 安裝包(自動下載下傳包,并将包資訊記錄到package.json,如果隻需要安裝到開發環境,例如webpack,後面追加參數–save-dev)
npm install pkgname
- 一次性安裝所有包(安裝package.json中記錄的所有包)
npm install
- 解除安裝包(自動删除package.json中依賴資訊)
npm uninstall pkgname