一、方法一:文件启动
1、Nuxt.js项目,文件根目录添加 ecosystem.config.js ,配置如下:
module.exports = {
apps: [{
name: 'anchor',
script: './node_modules/nuxt/bin/nuxt.js',
append_env_to_name: false,
cwd: './',
exec_mode: "cluster",
out_file: "./logs/out-0.log",
error_file: "./logs/err-0.log",
merge_logs: true,
log_data_format: 'YYYY-MM-DD HH:mm Z',
autorestart: true,
watch: [
'./nuxt',
'nuxt.config.js',
'package.json'
],
max_memory_restart: '1G',
node_args: '--harmony',
env: {
PORT: 3000,
NODE_ENV: "production"
}
}],
};
2、package.json 添加pm2启动命令
"scripts": {
"dev": "nuxt",
"build": "nuxt build",
"start": "nuxt start",
"pm2": "pm2 start ./ecosystem.config.js --interpreter babel-node --env production",
"generate": "nuxt generate",
"post-update": "yarn upgrade --latest"
},
代码部署之后执行: npm run pm2 即可
问题:文件启动方式会导致内存占用率很大,一个小小的官网,占用了700M内存
二、shell命令启动
1、Nuxt.js项目,文件根目录添加 ecosystem.config.js ,配置如下:
module.exports = {
apps: [{
name: 'egatee-web',
script: 'nuxt',
args: "start",
append_env_to_name: false,
cwd: './',
exec_interpreter: "bash",
exec_mode: "cluster",
out_file: "./logs/out-0.log",
error_file: "./logs/err-0.log",
merge_logs: true,
log_data_format: 'YYYY-MM-DD HH:mm Z',
autorestart: true,
watch: [
'./nuxt',
'nuxt.config.js',
'package.json'
],
max_memory_restart: '1G',
node_args: '--harmony',
env: {
PORT: 3000,
NODE_ENV: "production"
}
}],
};
2、package.json 添加pm2启动命令
"scripts": {
"dev": "nuxt",
"build": "nuxt build",
"start": "nuxt start",
"pm2": "pm2 start ./ecosystem.config.js --interpreter babel-node --env production",
"generate": "nuxt generate",
"post-update": "yarn upgrade --latest"
},
使用这种方法,内存占用只有30多M