注意:對比package.json代碼修改配置即可,如果2024年5月之后下載的代碼可以直接用命令啟動
服務器安裝node + pm2 如已安裝跳過此章節
在 CentOS 上安裝 Node.js 和 PM2 的步驟如下:
安裝 Node.js
使用 YUM 安裝 Node.js:
在 CentOS 中,你可以使用 NodeSource 的 Node.js 安裝腳本來安裝 Node.js。首先,使用以下命令下載安裝腳本:
curl?-fsSL?https://rpm.nodesource.com/setup_16.x?|?sudo?bash?-
然后,安裝 Node.js:
sudo?yum?install?-y?nodejs
這將安裝 Node.js 和 npm。
驗證安裝:安裝完成后,運行以下命令驗證 Node.js 和 npm 的安裝:
node?-vnpm?-v
如果安裝成功,將顯示 Node.js 和 npm 的版本信息。
安裝 PM2
全局安裝 PM2:
使用 npm 全局安裝 PM2:
sudo?npm?install?-g?pm2
驗證安裝:安裝完成后,運行以下命令驗證 PM2 的安裝:
Copy?codepm2?-v
如果安裝成功,將顯示 PM2 的版本信息。
?? 修改 package.json
如上圖在 script 標簽中添加
"pm2":?"pm2?start?./ecosystem.config.cjs?--interpreter?babel-node?--env?production",
"bundle":?"rollup?-c"
?? 在根目錄創建 ecosystem.config.cjs 內容如下
// 配置pm2
module.exports = {
apps: [
{
name: "JavaMerPcMall",
script: "./.output/server/index.mjs",
args: "start", // 傳遞給腳本的參數
watch: true, // 開啟監聽文件變動重啟
ignore_watch: ["node_modules", "public", "logs"], // 不用監聽的文件
exec_mode: "fork",// 自家主機window cluster_mode 模式下啟動失敗
instances: "1", // max表示最大的 應用啟動實例個數,僅在 cluster 模式有效 默認為 fork
autorestart: true, // 默認為 true, 發生異常的情況下自動重啟
max_memory_restart: "1G", // // 最大內存限制數,超出自動重啟
error_file: './logs/app-err.log', // 錯誤日志文件
// out_file: './logs/app-out.log', // 正常日志文件
merge_logs: true, // 設置追加日志而不是新建日志
log_date_format: "YYYY-MM-DD HH:mm:ss", // 指定日志文件的時間格式
min_uptime: "60s", // 應用運行少于時間被認為是異常啟動
env: {
// 環境參數,當前指定為開發環境
NODE_ENV: "development",
PORT: "8888",
},
env_production: {
// 環境參數,當前指定為生產環境
NODE_ENV: "production", //使用production模式 pm2 start ecosystem.config.js --env production
PORT: "60001",
},
env_test: {
// 環境參數,當前為測試環境
NODE_ENV: "test",
}
}
]
};
?? 根據如下步驟 執行打包 copy 到服務器對一個目錄
npm?install
npm?run?build
將打包后的如下對應文件 復制到服務器
如下圖項目啟動成功
本地測試端口訪問成功
根據配置在用nginx 轉發對應端口到域名即可,此處配置省略,普通的 location 配置即可。