Appearance
nuxt3项目打包
以前的打包和现在的打包结果不一样了,以前需要4个文件,现在只需要一个文件,打包后上传到服务器,只需要执行node ./.output/server/in
以前需要4个文件
bash
.nuxt
public
nuxt.config.js
package.json
.nuxt
public
nuxt.config.js
package.json
上传到服务器需要安装依赖npm i
,比较麻烦
现在只需要一个文件
bash
.output
.output
打包命令
bash
pnpm run build
pnpm run build
默认3000
端口
注意 线上(坑)
打包后,需要把.output
文件夹上传到服务器,然后执行node ./.output/server/index.mjs
启动服务。但是注意只能用3000
端口,默认的,改不了,至少目前改不了,不知道pm2能不能改,我用nodejs版本管理器是改不了的,就算我的端口号是8080
,启动后还是3000
端口,使用环境变量也不行。这样一来就只能启动一个项目。坑吧!!!
改端口
解决办法 (默认端口)
.output/server/chunks/nitro/nitro.mjs
文件中,第5146
行左右, const port = destr(p
,把3e3
改成8080
,然后上传到服务器,启动服务,就可以用8080
端口了,但是需要每次打包后手动更改,比较麻烦。
使用pm2启动服务
这个网上很多教程都是关于pm2的,一搜就有,这里就不赘述了
新建ecosystem.config.cjs
文件来启动项目
js
module.exports = {
apps: [
{
name: 'demo',
exec_mode: 'cluster',
instances: 'max',
port: '3000',
script: './.output/server/index.mjs',
args: 'start',
error_file: './err.log', // 错误日志存放地址
out_file: './out.log', // 输出日志存放地址
}
]
}
module.exports = {
apps: [
{
name: 'demo',
exec_mode: 'cluster',
instances: 'max',
port: '3000',
script: './.output/server/index.mjs',
args: 'start',
error_file: './err.log', // 错误日志存放地址
out_file: './out.log', // 输出日志存放地址
}
]
}
启动服务
bash
pm2 start ecosystem.config.cjs
pm2 start ecosystem.config.cjs
重启服务
bash
pm2 restart ecosystem.config.cjs
pm2 restart ecosystem.config.cjs
停止服务
bash
pm2 stop ecosystem.config.cjs
pm2 stop ecosystem.config.cjs
查看服务状态
bash
pm2 status
pm2 status