egg实践系列 --- Ts项目应用部署

2,416 阅读3分钟

应用部署前期准备

       你需要一台服务器,搭建有node的环境,本人使用的是阿里云,装了centos7系统,你还可以在系统上界面化。因为也是刚接触,用什么配置环境简单就用什么,所以我安装了宝塔面板,觉得挺好的。最后就是拥有写好的项目。这样你就可以开始你的部署之旅了!

服务器环境搭建

       安装宝塔面板后,通过浏览器打开宝塔网址(面板地址:http://{您的服务器IP}:888)登录进去后可以看到以下界面。如果需要部署前端项目,就在网站那里,新建就可以了。还有数据库可以自己通过命令生成,也可以用本地的sql运行导入。接下来,点击软件管理安装PM2管理器,集成了node+npm环境了。


egg 项目准备及运行

1、安装:egg-scripts

       很多开发者开发时没有安装egg-scripts,因为本地运行常用这个命令: npm run dev 。线上环境才用egg-scripts命令:npm run start,为什么不用PM2呢,应为框架内置了 egg-cluster 来启动 Master 进程,Master 有足够的稳定性,同时,框架也提供了 egg-scripts 来支持线上环境的运行和停止。

2、运行命令:npm run ci

       将ts编译成js,因为js优先加载,项目执行时是将将ts编译成js,再运行js,让项目跑一来。而已这个命令规范你的代码规范,代码不规范会报错提醒你修改,eslint规则可以自行自定义。所以开本地开发时,常用这个命令,避免等到部署时出现大量规范问题,影响项目上线时间。

3、安装指明生成环境:npm install --production

       这样在压缩时,只会打包生产环境需要的依赖包,减少之后的压缩包的大小。

4、压缩项目包:tar -zcvf ../release.tgz .

       自己可以用ftp(极力推荐)或者远程共享磁盘资源的模式将这个包发到服务器,宝塔面板提供ftp功能。

5、开放端口

      除了再阿里云的安全组配置出站入站规则,还需要再系统的防火墙开放项目运行需要的端口。否则就算项目成功跑起来,也访问不到。


6、项目解压及文件操作权限

      第一步解压 :gunzip FileName(压缩的文件名).gz,第二步解压:tar xvf FileName(压缩的文件名).tar。最后运行npm start

      运行时可能会出现这样的权限报错:Permission denied,返回上一级目录,然后运行命令:sudo chmod -R 777 文件名,来赋予权限。当出现端口占用的错误,运行命令:sudo lsof -i:端口,然后用kill 进程号,来杀死进程。

最后

       因为刚开始用vue+egg开发了一个后台系统,顺便写写总结,后面有时间会继续更新关于egg的实战经历,希望对有需要的人有所帮助。有什么不对的地方望各位指出,有什么更好的方式,也可以一起摸鱼,哈哈。