CentOS7部署Next.js项目及故障解决(持续更新)

377 阅读1分钟

项目的服务器使用的是腾讯云的轻量应用服务器Lighthose, 系统版本CentOS7。

本文主要记录环境搭建中遇到的问题和故障解决。

环境搭建

安装node

下载

wget http://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-x64.tar.gz

解压文件

tar -zxvf node-v10.15.3-linux-x64.tar.gz

重命名文件夹

mv node-v10.15.3-linux-x64 node

修改profile文件

vi ~/.bash_profile

编辑环境变量

PATH=$PATH:$HOME/bin

为(别忘记加冒号)

PATH=$PATH:$HOME/bin:/root/node/bin

运行

source ~/.bash_profile

查看版本号是否安装成功

node -v

npm -v

安装PM2

Blog使用了pm2做进程守护,因为不是本篇主要内容,详细了解点我直达官方文档 Quick Start

npm install pm2@latest -g

启动项目,例如我的项目名是myBlog

pm2 start npm --name "nextjs-blog" -- run build && pm2 save

防火墙设置

防火墙规则一般默认值开放了80端口,如果开发使用3000或者9000等端口还需进行规则设置。在服务器->防火墙->添加规则中设置。

image.png

image.png

故障解决

不支持SWC

​ Next.js使用了SWC,SWC是一个基于Rust开发的平台,具有可扩展性,高性能并且支持SWC,是下一代快速的开发开发者工具。

​ 但是我用pm2启动后直接报错,该环境下不支持SWC。

​ 我们实用自定义的Babel配置可以解决这个问题。

​ 在根目录下新建.babelrc文件,然后写入以下内容。

{
  "presets": [
    [
      "next/babel",
      {
        "preset-env": {},
        "transform-runtime": {},
        "styled-jsx": {},
        "class-properties": {}
      }
    ]
  ],
  "plugins": []
}

重新启动项目就ok了。