目前使用的技术栈是:前端Vue、后端Koa、数据库Mongodb。
然而每当起服务的时候,都要 npm start 、 node ./server/app.js ,还要同时保持这两个窗口一直是开着的,很是麻烦。
而且因为我使用的是koa,也没有使用狼叔写的koa脚手架。是自己基于廖雪峰老师的 Koa框架 改的一个小型mvc。导致没有热更新。
为了简化这种没必要的操作及增加热更新,开始想怎么进行优化。于是选择了 pm2
配置pm2
先安装pm2: npm i pm2 、 npm i pm2 -g
因为是开源项目,为了让代码能再别人的电脑上跑起来,需要让pm2存在项目里。然后在全局安装,方便后期调试
再项目的根目录里创建logs目录
在当前的目录创建一个pm2.json的文件,内容如下:
{ "apps": [{ "name": "koler-server", "script": "./app.js", "error_file" : "../logs/server-err.log", "out_file" : "../logs/server-out.log", "merge_logs" : true, "log_date_format" : "YYYY-MM-DD HH:mm Z", "cwd": "./server", "watch": [ "app.js", "controllers" ], "watch_options": { "followSymlinks": false } },{ "name": "koler-app", "script": "./build/dev-server.js", "error_file" : "./logs/app-err.log", "out_file" : "./logs/app-out.log", "merge_logs" : true, "log_date_format" : "YYYY-MM-DD HH:mm Z", "cwd": "./", "ignore_watch" : [ "node_modules" ], "watch_options": { "followSymlinks": false } }] }
这里同时启动两个项目。
koler-server 是koa, koler-app 是前端vue。
我尝试了一下把
"error_file" : "./logs/app-err.log", "out_file" : "./logs/app-out.log", "merge_logs" : true, "log_date_format" : "YYYY-MM-DD HH:mm Z",
代码提升到json的根部,但是发现不起作用。看来pm2不支持这种。所以只能在每个服务里写了。
配置package.json
替换之前的 script 字段下的 dev ,然后再增加 stop 字段,替换后如下:
"scripts": { "dev": "pm2 start pm2.json && pm2 logs", "start": "npm run dev", "stop": "pm2 stop koler-app koler-server && pm2 delete koler-app koler-server", "build": "node build/build.js", "lint": "eslint --ext .js,.vue src" },
pm2 start pm2.json && pm2 logs 是基于pm2.json文件配置启动,后面的 pm2 logs 是为了同时跟踪vue和koa的反馈日志。
输入 npm start 后。终端如下:
我这里不知道为什么。每次 npm start 都会爆出来如下的错误:
1|koler-ap | 2017-10-23 19:45 +08:00: 1|koler-ap | ┌────────────────────────────────────────────────────────────┐ 1|koler-ap | │ npm update check failed │ 1|koler-ap | │ Try running with sudo or get access │ 1|koler-ap | │ to the local update config store via │ 1|koler-ap | │ sudo chown -R $USER:$(id -gn $USER) C:\Users\158bl\.config │ 1|koler-ap | └────────────────────────────────────────────────────────────┘
单独启动是没有任何问题的,但是项目还是能照常跑起来。可能是nodejs或者pm2的bug吧(因为不知道是哪里的bug,就不去github上提issue了)
启动后,你的屏幕会出现一个cmd窗口,不用关,过一会它会自行关闭的。每次修改代码触发pm2配置文件里 watch 规则时,就会自动弹出一个cmd窗口,也是过一会关闭。
因为其他项目使用者可能会在电脑上跑多个pm2实例,所以在 stop 字段里,我跟上了名字。防止出现把所有的实例全部暂定删除了。
测试
现在我们更改代码发现没有任何问题,pm2会帮助我们自动进行热更新。现在我们故意改错一段vue的代码试试:
可以发现已经OK了。
这里说明一下为什么在pm2.json配置文件里的第二个实例 koler-app 没有watch,因为vue在开发环境下使用的是wenpack的watch,所以不需要加。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]