npm

npm: 包管理工具,nodejsjavascript

https://www.w3cschool.cn/aqjtn/aqjtn-w9m825q9.htmlhtml

npm比Node.js更頻繁地發佈,所以要在命令行上安裝最新的穩定版npm,請運行:適用穩定版就好java

npm install npm@latest -g

 更新到nextnpm 發行版,請在命令行上運行: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

清理緩存

npm cache clean --force

相關文章
相關標籤/搜索