寶塔部署nodejs項(xiàng)目的實(shí)戰(zhàn)步驟
前言
部署操作很簡(jiǎn)單,網(wǎng)上也有很多教程,不過(guò)我還是踩坑了,這里記錄一下,給其他人也避避坑吧。
步驟
首先你已經(jīng)有了服務(wù)器,并且打開(kāi)了寶塔面板,其次準(zhǔn)備好你的nodejs項(xiàng)目。
在寶塔安裝pm2管理器(推薦)

打開(kāi)pm2的設(shè)置,選擇nodejs項(xiàng)目對(duì)應(yīng)的版本

在左側(cè)菜單點(diǎn)擊文件,在根目錄點(diǎn)擊www,其中 wwwroot就是寶塔的默認(rèn)建站目錄

新建目錄nodejs-demo

進(jìn)入文件夾,上傳你的nodejs項(xiàng)目。注意:此處本人踩了坑,按照某文寫的將node_modules壓縮上傳了。推薦忽略node_modules將其他文件上傳,然后打開(kāi)寶塔內(nèi)置終端安裝依賴,務(wù)必使用對(duì)應(yīng)的包管理工具 ,我這里是pnpm。如果你使用了非npm工具,記得在pm2的模塊管理中下載對(duì)應(yīng)工具。

安裝完成后點(diǎn)擊目錄右側(cè)的刷新即可看到node_modules

下一步則是放行端口,如果不放行是無(wú)法訪問(wèn)的,此處需要放行兩處,寶塔面板的安全菜單以及云服務(wù)器的防火墻,我的項(xiàng)目端口用的3000那就放行3000


回到寶塔面板,打開(kāi)pm2管理器,添加項(xiàng)目

添加項(xiàng)目成功后會(huì)顯示對(duì)應(yīng)端口,并且狀態(tài)是綠色播放圖標(biāo),沒(méi)有顯示端口號(hào)的話肯定是項(xiàng)目啟動(dòng)失敗了,建議重新走一遍流程。

此時(shí)就可以在瀏覽器輸入 ip/域名:端口號(hào) 來(lái)訪問(wèn)node項(xiàng)目了

其他
這里具體講一下我遇到的坑,我按照某文將node_modules壓縮打包,在寶塔解壓后一直走到pm2添加項(xiàng)目那一步,然后端口號(hào)一直顯示不出來(lái),刪除項(xiàng)目>添加項(xiàng)目 來(lái)回了好幾遍也沒(méi)用,后來(lái)?yè)Q了其他文章說(shuō)要在寶塔里安裝依賴,我就刪了壓縮上傳的node_modules重新安裝。但是這里我犯傻了,我的項(xiàng)目用的pnpm,pnpm-lock文件也一起上傳了,我卻用npm在重新安裝依賴,結(jié)果自然還是不行。此時(shí)我還沒(méi)發(fā)現(xiàn)前面的問(wèn)題,我去檢查了pm2里的報(bào)錯(cuò)日志,日志提示說(shuō)express找不到。我就很納悶,明明node_modules里安裝了它,但是日志報(bào)錯(cuò)那肯定有問(wèn)題,我就寶塔上和vscode分別打開(kāi)了線上和本地的依賴包,一對(duì)比發(fā)現(xiàn)結(jié)構(gòu)不同,我這才感覺(jué)到了問(wèn)題所在,一看寶塔,里面有npm和pnpm兩個(gè)的lock文件。把node_modules刪除,再把npm的lock文件刪除,然后安裝了pnpm,用pnpm安裝了依賴,終于成功添加了node項(xiàng)目。這么說(shuō)下來(lái),原來(lái)還是自己太粗心了(笑哭),希望其他人不要犯我這種傻。
總結(jié)
到此這篇關(guān)于寶塔部署nodejs項(xiàng)目的文章就介紹到這了,更多相關(guān)寶塔部署nodejs項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEq
這篇文章主要介紹了node項(xiàng)目中遇到使用斷言測(cè)試程序,看了下nodejs的api之后,對(duì)nodejs中assert斷言的幾個(gè)方法做個(gè)簡(jiǎn)單的記錄,需要的朋友可以參考下2017-09-09
通過(guò)Nodejs搭建網(wǎng)站簡(jiǎn)單實(shí)現(xiàn)注冊(cè)登錄流程
這篇文章主要介紹了通過(guò)Nodejs搭建網(wǎng)站簡(jiǎn)單實(shí)現(xiàn)注冊(cè)登錄流程,Node.js 是一個(gè)基于 Chrome V8 引擎的 JavaScript 運(yùn)行環(huán)境。 Node.js 使用了一個(gè)事件驅(qū)動(dòng)、非阻塞式 I/O 的模型,使其輕量又高效。,需要的朋友可以參考下2019-06-06
node.js中的querystring.escape方法使用說(shuō)明
這篇文章主要介紹了node.js中的querystring.escape方法使用說(shuō)明,本文介紹了querystring.escape的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
基于Koa(nodejs框架)對(duì)json文件進(jìn)行增刪改查的示例代碼
這篇文章主要介紹了基于Koa(nodejs框架)對(duì)json文件進(jìn)行增刪改查的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02
nodejs socket服務(wù)端和客戶端簡(jiǎn)單通信功能
這篇文章主要為大家詳細(xì)介紹了nodejs socket服務(wù)端和客戶端簡(jiǎn)單通信功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09
node.js中的fs.chownSync方法使用說(shuō)明
這篇文章主要介紹了node.js中的fs.chownSync方法使用說(shuō)明,本文介紹了fs.chownSync的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12

