npm: 包管理工具,nodejsjavascript
https://www.w3cschool.cn/aqjtn/aqjtn-w9m825q9.htmlhtml
npm比Node.js更頻繁地發佈,所以要在命令行上安裝最新的穩定版npm,請運行:適用穩定版就好java
npm install npm@latest -g
更新到next
npm 的發行版,請在命令行上運行:node
npm install npm@next -g
註冊用戶git
在npm 官網註冊一個帳戶,郵箱驗證後可直接進入用戶控制檯。npm
安裝node 以後,會自帶安裝npm,經過如下命令能夠登陸用戶json
npm login
如下命令查看當前用戶信息windows
npm whoami
npm profile get
其餘相關沒有看,主要仍是看如何使用npm 下載和使用模塊,已經自定義包緩存
公共包:函數
npm install <package_name>
關於包:包是一個文件或目錄由一個叫作package.json 文件描述的文件。
包能夠只是某個用戶或者組織的,稱做範圍包,能夠是公共的或私有的。
模塊:模塊是任意的文件或目錄,位於node_modules 目錄下的,而且是能夠經過require函數 加載的。
package.json 文件中必須由main字段
必須由一個index.js 文件,
必須由一個JavaScript的文件。
包的範圍:
建立的包,能夠與公共包或者其餘組織的包同名,經過如下指令來肯定範圍包
好比我的或者組織包:例如我的用戶名是xxx
@xxx/package-name
對有組織我的建立包的範圍,私有的狀況下,組織包是組織中的成員能夠訪問和更改,公共狀況下全部人可見可是隻有組織內部成員可寫,我的的範圍包亦同。只是我的的私有包若是其餘想更改必須又全部者受權。
package.json 文件:
必須包涵name 和version字段
{ "name": "my-awesome-package", "version": "1.0.0" }
Your Name <email@example.com> (http://example.com) 郵件與網站可選
建立一個默認的package.json 文件,打開終端,這裏我的建立了一個node_cli 文件夾,而後在其中進行測試(安裝好nodejs後,默認會增長node的環境變量)
npm init
根據只是建立json 文件輸入相關信息,ok後查看。
默認package.json 文件
npm init -y
設置建立文件的默認選項,更改後,再次執行npm init -y 便可。
範圍包package.json:
npm init --scope=@xxxx
建立包:
必填字段,其中main指定的index.js 是用來提供給其餘使用你包的用戶用來加載使用的。
建立一個index.js 文件,增長2行代碼:導出一個函數對象,名稱爲printMsg
exports.printMsg = function() { console.log("This is a message from the demo package"); }
對有私有包和公共包,直接使用npm publish,對有範圍包使用npm publish --access public
推送的時候通常公共包,名字都會有重複,若是提示沒有權限通常都是由於名字已經被佔用了,這時候更改一下名稱便可,若是有你有錢可使用私有包,那麼名稱重複也是ok的。
包發佈成功後,會給你註冊的郵箱發送一封郵件。
測試安裝:
建立一個測試文件夾,使用install 測試安裝發佈的包
npm install <your-module-name>
安裝完畢後,能夠看到建立的文件,與以前上傳的包文件信息。
測試,進入node調試器。
輸出正常。
readme文件:顯示在包說明中,效果以下,關於發佈私有包和範圍包,此處不表(由於沒買)
更新包:
npm version patch // 版本信息+1
npm publish
包依賴:在package.json 文件中指定依賴,在下載包的時候回下載相關依賴模塊。
兩種狀況:生產環境與開發環境。
開發環境:
--save-dev
生產環境
--save-prod
使用命令可直接添加,或者直接編輯也可。效果以下,建議直接使用命令,使用最新版本,而後提交更新試試。
tips:
若是是開發環境依賴,那麼當你提交到npm後,其餘用戶下載後不會下載相關依賴。
只有生產依賴其餘用戶纔會下關相關依賴的模塊。--save-prod 是可選的,若是不使用此參數,默認也會下載,可是package.json 文件中不會顯示,若是你是要本身開發一個模塊,而且開源最好加上此參數。
關於版本的語義化(也就是版本號表明的意思)npm的建議。
第一個版本1.0.0,bug修復使用最後一個字1.0.1 新功能 1.1.0,大版本跨越 2.0.0
標記:tag,相似git中的tag,由於版本號看着比較模塊,要麼每次都要去看說明文件,固然看說明文件是必須的,可是加上tag 的話,會更清晰。
npm publish --tag <tag>
效果:
給過去的版本添加tag
npm dist-tag add <package-name>@<version> [<tag>]
更新指定版本號的包
npm version <update_type>
模塊安裝:
npm install package // 若是是範圍包 @xxxxx/package-name
使用tag安裝
npm install example-package@beta
全局下載安裝:-global
npm install -g <package_name>
更新包:
npm update //或者能夠 npm install
測試是否有更新
npm outdated
更新全局包
// 檢查 npm outdated -g --depth=0 // 單個 npm update -g <package_name> // 所有 npm update -g
卸載包和依賴:
刪除項目包:
npm uninstall <package_name>
// 範圍
npm uninstall <@scope/package_name>
刪除依賴
// 公共 npm uninstall --save <package_name> // 範圍 npm uninstall --save <@scope/package_name> // 若是是開發依賴 npm uninstall --save-dev package_name
檢查模塊依賴,或者直接打開文件夾查看(windows)
//w dir node_modules //u ls node_modules
全局卸載:-g
// 公共 npm uninstall -g <package_name> // 範圍 npm uninstall -g <@scope/package_name>
關於測試報告,我的沒看,真有小夥伴要開發開源模塊的能夠去看看。
還有其餘一些好比簽名之類的。
查看模塊版本
http://www.javashuo.com/article/p-hqffwjnv-hb.html
清理緩存