Skip to content

Instantly share code, notes, and snippets.

@zzjtnb
Last active August 14, 2020 01:24
Show Gist options
  • Save zzjtnb/44acae45d6b5f11b7443935750db8648 to your computer and use it in GitHub Desktop.
Save zzjtnb/44acae45d6b5f11b7443935750db8648 to your computer and use it in GitHub Desktop.
Debian 9上安装Node.js部署Nuxt项目
# 1.安装nodejs
要获得Distro-stable版本的Node.js,您可以使用apt包管理器。首先,刷新本地包索引:
```bash
sudo apt update
```
然后从存储库安装Node.js包:
```bash
sudo apt install nodejs
```
如果存储库中的软件包满足您的需求,那么您需要做的就是使用Node.js进行设置。
要检查在这些初始步骤之后安装了哪个版本的Node.js,请键入:
```bash
nodejs -v
```
由于与另一个包冲突,所以Debian存储库中的可执行文件名叫nodejs而不是node。在运行软件时请记住这一点。
# 2.项目部署
在nuxt.js的官网介绍了3种部署方式,分别是服务端渲染应用部署,静态应用部署和单页面应用程序部署 (SPA),我需要使用服务端渲染应用部署。按照文档中的方式,我把整个项目放到了服务器,通过npm install安装好依赖包,先执行npm run build,然后npm run start。Ok,启动成功,访问一下,可以看到页面,功能也正常,但是总感觉不太对,怎么能直接把项目全部放进来呢?而且现在监听的端口号,关闭服务器就会把服务关掉了。
## 使用pm2启动项目
没办法,去查了一下谷歌,后面知道其实只要在本地build后,把.nuxt, static, package.json,nuxt.config.js这个4个文件打包放入服务器就行,然后在服务器安装依赖包。nuxt项目也可以使用pm2启动
### 1.安装pm2设置软连接:
```bash
npm install pm2 -g
```
### 2.cd到项目目录
执行pm2 start npm --name "project-name" -- run start ,这里的name是启动的项目标识,执行pm2 list可以查看当前运行的项目。现在关闭服务器窗口,项目也是启动的。但是项目要通过域名访问,也就是默认80端口,这就要使用nginx反向代理来实现了。
```bash
pm2 start npm --name 'project-name' -- start
```
project-name,就是package.json里的name名
# pm2命令
```bash
pm2 start app.js # 启动app.js应用程序
pm2 start app.js --name="demo" # 启动应用程序并命名为 "demo"
pm2 start app.js --watch # 当文件变化时自动重启应用
pm2 start script.sh # 启动 bash 脚本
pm2 list # 列表 PM2 启动的所有的应用程序
pm2 show [app-name] # 显示应用程序的所有信息
pm2 logs # 显示所有应用程序的日志
pm2 logs [app-name] # 显示指定应用程序的日志
pm2 stop all # 停止所有的应用程序
pm2 stop 0 # 停止 id为 0的指定应用程序
pm2 restart all # 重启所有应用
pm2 restart 0 # 重启id为0 的应用程序
pm2 delete all # 关闭并删除所有应用
pm2 delete 0 # 删除指定应用 id 0
pm2 startup # 创建开机自启动命令
pm2 save # 保存当前应用列表
```
## Nginx
```bahs
server {
listen 80;
server_name www.test.com;
location / {
root /opt/deploy/front; # 前端文件目录
proxy_pass http://127.0.0.1:3000;
}
}
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment