Nodejs項(xiàng)目打包部署兩種方式總結(jié)
方式一:PM2
一、準(zhǔn)備工作
- 確保服務(wù)器上已安裝 Node.js 環(huán)境
- 建議使用 PM2 進(jìn)行進(jìn)程管理(需要額外安裝)
二、部署步驟
1.首先在服務(wù)器上安裝 PM2(推薦):
npm install -g pm2
2.將項(xiàng)目代碼上傳到服務(wù)器,可以使用 Git 克隆:
git clone https://gitee.com/gaozm_git/nodejs-api.git cd nodejs-api
3.安裝項(xiàng)目依賴:
npm install
4.使用 PM2 啟動(dòng)項(xiàng)目:
pm2 start server.js --name "seek-api"
三、環(huán)境變量配置
- 確保在服務(wù)器上正確配置了 .env 文件
- 包含所有必要的環(huán)境變量(如數(shù)據(jù)庫(kù)連接、API密鑰等)
四、常用 PM2 命令:
# 查看運(yùn)行狀態(tài) pm2 status # 查看日志 pm2 logs seek-api # 重啟應(yīng)用 pm2 restart seek-api # 停止應(yīng)用 pm2 stop seek-api
這樣就是運(yùn)行成功了
方式二:pkg(目前支持nodejs版本是18的,18以上不支持)
一.首先安裝 pkg
npm install -g pkg
二、在 package.json 中添加打包配置
{ "bin": "server.js", "pkg": { "assets": [ "node_modules/**/*", "routes/**/*", "config/**/*", "utils/**/*", "middleware/**/*" ], "targets": [ "node18-win-x64", "node18-linux-x64", "node18-macos-x64" ] }, "scripts": { "build": "pkg ." }, // ... existing code ...
三、現(xiàn)在您可以使用以下命令進(jìn)行打包
npm run build
打包后會(huì)在項(xiàng)目根目錄生成三個(gè)可執(zhí)行文件:
seek-api-win.exe (Windows)
seek-api-linux (Linux)
seek-api-macos (macOS)
注意事項(xiàng):
- 打包后的文件會(huì)比較大,因?yàn)樗?Node.js 運(yùn)行時(shí)
- 某些原生模塊可能需要特殊處理
- 環(huán)境變量和配置文件需要單獨(dú)處理
- 建議在目標(biāo)平臺(tái)上進(jìn)行打包
使用打包后的文件:
- 將生成的可執(zhí)行文件復(fù)制到目標(biāo)服務(wù)器
- 確保配置文件(如 .env)也復(fù)制到相應(yīng)位置
- 直接運(yùn)行可執(zhí)行文件即可:
npm run build
總結(jié)
到此這篇關(guān)于Nodejs項(xiàng)目打包部署兩種方式總結(jié)的文章就介紹到這了,更多相關(guān)Nodejs項(xiàng)目打包部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決node-webkit 不支持html5播放mp4視頻的方法
本文給大家分享的是解決node-webkit 不支持html5播放mp4視頻的方法,其原因大概是因?yàn)閚ode-webkit沒(méi)有購(gòu)買mp4格式的專利授權(quán),恩,我們來(lái)想個(gè)辦法來(lái)解決這個(gè)事情吧。2015-03-03修改Nodejs內(nèi)置的npm默認(rèn)配置路徑方法
今天小編就為大家分享一篇修改Nodejs內(nèi)置的npm默認(rèn)配置路徑方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05node.js中的fs.unlinkSync方法使用說(shuō)明
這篇文章主要介紹了node.js中的fs.unlinkSync方法使用說(shuō)明,本文介紹了fs.unlinkSync的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12Node.js?使用?zlib?內(nèi)置模塊進(jìn)行?gzip?壓縮
這篇文章主要介紹了Node.js?使用?zlib?內(nèi)置模塊進(jìn)行?gzip?壓縮,nodejs為我們提供了一個(gè)zlib內(nèi)置模塊,我們可以使用它其中的gzip方法來(lái)對(duì)傳遞的數(shù)據(jù)進(jìn)行壓縮,從而提高數(shù)據(jù)傳遞效率,更多相關(guān)內(nèi)容需要的朋友可以參考一下2022-09-09Nodejs-cluster模塊知識(shí)點(diǎn)總結(jié)及實(shí)例用法
在本篇文章里小編給大家整理的是一篇關(guān)于Nodejs-cluster模塊知識(shí)點(diǎn)總結(jié)及實(shí)例用法,有興趣的朋友們可以跟著學(xué)習(xí)下。2021-12-12Express之get,pos請(qǐng)求參數(shù)的獲取
本篇文章主要介紹了Express之get,pos請(qǐng)求參數(shù)的獲取的相關(guān)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-05-05Nodejs腳本快速導(dǎo)出MySQL數(shù)據(jù)庫(kù)數(shù)據(jù)
在數(shù)據(jù)庫(kù)管理和數(shù)據(jù)遷移的過(guò)程中,常常需要將數(shù)據(jù)庫(kù)中的表數(shù)據(jù)和結(jié)構(gòu)進(jìn)行導(dǎo)出,本文將使用Node.js編寫一個(gè)腳本實(shí)現(xiàn)快速?gòu)腗ySQL數(shù)據(jù)庫(kù)中導(dǎo)出所有表的數(shù)據(jù)和結(jié)構(gòu),并保存為單獨(dú)的SQL文件,需要的可以參考下2024-10-10