关于VUE2.0+PM2搭建
关于VUE2.0+PM2搭建
安装VUE脚手架
$ npm install vue-cli -g
//这个是将vue脚手架进行全局安装。
$ npm install @vue/cli -g
//vue-cli3脚手架,安装此脚手架会更改创建项目命令,也可通过桥接npm包来保持vue2的命令
初始化vue项目(进入自己本地的文件夹)
$ vue-cli2: vue init webpack '项目名(任意)'
//等待npm包初始化后,进行下一步
$ vue-cli3: vue create 'projectName'
//可自定义或者使用默认配置 具体参考vue-cli3搭建项目
$ npm install pm2 -g
//使用pm2命令,进行负载均衡及进程守护
文件目录
app.js 配置文件
// app.js
const fs = require('fs');
const path = require('path');
const express = require('express');
const chalk = require('chalk')
const app = express();
app.use(express.static(path.resolve(__dirname, './dist')))//生产环境目录
app.get('*', function(req, res) {
const html = fs.readFileSync(path.resolve(__dirname, './dist/index.html'), 'utf-8')//生产环境目录index文件
res.send(html)
})
app.listen(8688, res => {//端口
console.log(chalk.yellow('Start Service On 8688'));
});
安装app.js中的依赖
$ npm install --save-dev fs path express chalk
配置PM2的processes.json文件
{
"apps": [
{
"name": "culture_jiaoyi_app", //项目名称
"script": "./app.js",//启动文件
"cwd": "/",//项目目录位置
"watch": [ //监测目录
"build",
"config",
"dist",
"src",
"static"
],
"access": "./logs/culture_jiaoyi_app/access.log",
"app-error": "./logs/culture_jiaoyi_app/app-err.log",
"app-info": "./logs/culture_jiaoyi_app/app-out.log",
"log_date_format": "YYYY-MM-DD HH:mm Z"//日志时间格式
}
]
}
配置 package.json 的pm2启动
在scripts
中加入$ "pm2": "pm2 start processes.json"
vue打包 启动PM2
打包vue:$ npm run build
启动pm2:$npm run pm2
pm2常用命令
$ pm2 start app.js # 启动app.js应用程序
$ pm2 start app.js -i 4 # cluster mode 模式启动4个app.js的应用实例
# 4个应用程序会自动进行负载均衡
$ pm2 start app.js --name="api" # 启动应用程序并命名为 "api"
$ pm2 start app.js --watch # 当文件变化时自动重启应用
$ pm2 start script.sh # 启动 bash 脚本
$ pm2 list # 列表 PM2 启动的所有的应用程序
$ pm2 monit # 显示每个应用程序的CPU和内存占用情况
$ pm2 show [app-name] # 显示应用程序的所有信息
$ pm2 logs # 显示所有应用程序的日志
$ pm2 logs [app-name] # 显示指定应用程序的日志
$ pm2 stop all # 停止所有的应用程序
$ pm2 stop 0 # 停止 id为 0的指定应用程序
$ pm2 restart all # 重启所有应用
$ pm2 reload all # 重启 cluster mode下的所有应用
$ pm2 gracefulReload all # Graceful reload all apps in cluster mode
$ pm2 delete all # 关闭并删除所有应用
$ pm2 delete 0 # 删除指定应用 id 0
$ pm2 scale api 10 # 把名字叫api的应用扩展到10个实例
$ pm2 reset [app-name] # 重置重启数量
$ pm2 startup # 创建开机自启动命令
$ pm2 save # 保存当前应用列表
$ pm2 resurrect # 重新加载保存的应用列表
$ pm2 update # Save processes, kill PM2 and restore processes
$ pm2 generate # Generate a sample json configuration file
pm2 start app.js --node-args="--max-old-space-size=1024"