关于nuxt 项目,我们使用npm run build
打包后,
我们只需要将打包后的以下目录上传服务上 npm install
安装依赖
ecosystem.config.js 这个文件默认是没有的 ,这里很关键,
你的服务器默认端口3000可能被占用,我们在项目中修改一下端口
在 nuxt.config.js
中跟head
平级添加 比如我们启动3003端口
server: {
port: 3003,
host: '0.0.0.0',
},
在package.json
中 也需要添加
"config": {
"nuxt": {
"host": "0.0.0.0",
"port": "3003"
}
为什么需两处都添加呢,因为只在一个文件中添加,启动后。可能访问不了到,经过摸索,所以两处都加上去,
问题来了
当我们在服务器上直接npm run start
的时候,你访问你的项目域名:端口
我的来举例子 http://3710666.cn:3003/
(项目是以前在公司做的) 这样是可以正常访问的,但是不可能我们的服务器一直开着,所以要弄pm2进程来启动,
你可能看到网上直接 用 pm2 start npm --name "name" -- run start
来启动 这里的name就是你项目中的
此时 你的服务已经启动了,服务器的你用pm2 list来查看,刚才你启动的服务确实在里面,但是你访问,结果页面步出来。用netstat -anp
命令看监听的端口,发现这个端口居然没被监听到。
此时,当你访问项目,发现还是出问题。
所有才使用上面所说的 ecosystem.config.js
整个js来启动
ecosystem.config.js 如下
module.exports = {
apps: [
{
name: 'nuxtapp',
exec_mode: 'cluster',
instances: '1', // Or a number of instances
script: './node_modules/nuxt/bin/nuxt.js',
args: 'start'
}
]
}
name一定要对应你package.json
里面的name.
然后我们直接 pm2 start
访问如下
如果你也遇到类似的情况,如果帮你解决了问题,不妨点个赞,这就是跟新的动力