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 buildpnpm 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.cjspm2 start ecosystem.config.cjs重启服务
bash
pm2 restart ecosystem.config.cjspm2 restart ecosystem.config.cjs停止服务
bash
pm2 stop ecosystem.config.cjspm2 stop ecosystem.config.cjs查看服务状态
bash
pm2 statuspm2 status
小洛的前端技术博客