40 lines
1.3 KiB
JavaScript
40 lines
1.3 KiB
JavaScript
const path = require("path");
|
||
const dotenv = require("dotenv");
|
||
|
||
const instances = Number.parseInt(process.env.WEB_CONCURRENCY ?? "1", 10) || 1;
|
||
const { parsed: envFromFile = {} } = dotenv.config({
|
||
path: path.join(__dirname, ".env"),
|
||
});
|
||
|
||
module.exports = {
|
||
apps: [
|
||
{
|
||
name: "DouyinArchive",
|
||
script: "npm",
|
||
args: "run start",
|
||
cwd: __dirname,
|
||
autorestart: true,
|
||
restart_delay: 4000,
|
||
kill_timeout: 5000,
|
||
instances,
|
||
exec_mode: instances > 1 ? "cluster" : "fork",
|
||
// 注意:不要在生产环境 watch,否则 Next.js 写入 .next 会触发重启风暴,导致 Playwright 进程被提前关闭
|
||
watch: false,
|
||
ignore_watch: [".next", ".turbo", "generated", "node_modules", ".git"],
|
||
env: {
|
||
// 明确开发环境可选项(如需)
|
||
NODE_ENV: process.env.NODE_ENV || "development",
|
||
...envFromFile,
|
||
},
|
||
env_production: {
|
||
// 关键:确保应用进程中的 NODE_ENV=production,从而禁用 Next.js 的开发特性
|
||
NODE_ENV: "production",
|
||
// 为避免多个实例同时拉起共享浏览器,默认单实例;如需并发,请改为独立浏览器服务
|
||
WEB_CONCURRENCY: "1",
|
||
...envFromFile,
|
||
},
|
||
time: true,
|
||
},
|
||
],
|
||
};
|