詳解離線安裝npm包的幾種方法

這篇文章主要介紹了詳解離線安裝npm包的幾種方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

這段時間的工作主題就是Linux

下的“離線部署”,包括mongo、mysql、postgresql、nodejs、nginx等軟件的離線部署。平常在服務器上藉助apt-get就能輕鬆搞定的事情,在離線環境下就變得異常艱難。上一篇文章講了使用snap離線安裝軟件的方式,但對於npm包怎麼離線部署,snap是無能爲力的。本篇文章就來講一講離線安裝npm包的幾種方法。

接下來的部分,我將以離線安裝pm2爲例來進行說明。pm2是一個進程守護程序,用於啓動node集羣和服務進程出錯時自動重啓,在生產環境下部署nodejs應用一般都會使用到。

使用 npm link

使用 npm link 的方式是最常用的方法,具體做法是在聯網機器上下載pm2的源碼並安裝好依賴,拷貝到離線服務器上,最後藉助 npm link 將pm2鏈接到全局區域。

首先,將pm2的源代碼克隆下來:

$ git clone https://github.com/Unitech/pm2.git

然後進入到pm2項目中,安裝好所有的依賴:

$ cd pm2
$ npm install

將安裝好依賴的pm2文件夾拷貝到目標服務器上,進入pm2目錄鏈接到全局區域:

$ cd pm2
$ npm link

這種方式最關鍵的是藉助 npm link 完成鏈接,但 npm link 這條命令本意是設計給開發人員調試用的。但開發人員開發某個全局命令工具的時候,通過將命令從本地工程目錄鏈接到全局,這樣調試的時候,可以實時查看本地代碼在全局環境下的執行情況。所以, npm link 的項目需要安裝所有的依賴,包括 dependencies 以及 devDependencies ,而我們如果只是使用而不是開發某個包的話,正常情況下不應該安裝 devDependencies 。

總而言之,這種方式優點是比較簡單,缺點是安裝了不需要的 devDependencies ,對於有“潔癖”的人是難以忍受的。

使用 npm install <folder>

那有什麼方法相比於上一種方法更乾淨呢?答案是 npm install <folder> 直接從文件夾安裝。

同樣以pm2爲例,首先我們需要準備pm2包,可以在聯網的機器上執行:

$ npm install pm2 --global-style

上面的 --global-style 很關鍵,表示將pm2安裝到node_modules中一個單獨的pm2文件夾中,這樣我們可以方便地將pm2及其所有相關依賴都拷貝出來。也可以使用 npm install pm2 -g 安裝到全局的node_modules,其文件佈局是一樣。

然後,將pm2文件拷貝到目標機器上,使用以下命令安裝:

$ npm install pm2/ -g

這種方式不需要安裝多餘的 devDependencies ,並且不需要克隆pm2的源碼,比第一種方法更乾淨環保。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持神馬文庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章