eo_linker 部署填坑记录

背景:头头让我部署一个 eo_linker api 管理工具的开源版。我要对其进行编译部署,以便进行二次开发

服务器环境: centos

部署步骤:

  1. 下载源码 :https://github.com/eolinker/eoLinker-AMS-3.5.1-for-PHP

  2. 后端的代码不用改,直接可以运行

  3. 前端采用 Angular。

坑来了

坑都集中在前端源码的编译上。

  1. readme 文档无信息:根据前端源码的 readme 文档, 并没有介绍编译的步骤。

  2. 包安装失败

    • 万事无脑先来一遍 npm install。然鹅,报错!
    • 换一个 cnpm install, 一样报错。
    • 只能换 yarn 试试。
  3. 安装 yarn 失败:

    • 因为服务器没装 yarn ,故根据 yarn 官方文档安装 yarn。
    • 安装结果报错,报错信息是:required nodejs,我他喵 node 都装了几年了
    • /usr/local/bin 下建了软链接链到 node 命令,这样终端打 nodejs 就跟能调出 node 了。
    • 再次安装 yarn ,结果还是找不到 nodejs 失败,猝,放弃。
  4. 分析 npm install 报错信息

    • 回过头来看 npm install 的报错信息,node-sass 模块下载失败
    • 搜索下,网上说 node-sass 的地址经常抽风,换成淘宝的地址试试。
    • 还是不行,经过一番艰辛的排查,发现是 package.json 中要求的 xx 包所依赖的 node-sass 版本不支持 node8 以上

现在有两条路可以走,一是升级 node-sass 版本(但是可能会让项目跑不了);二是安装 node7 (但是服务器上跑的 node 服务都是基与 node8 的,降到 node7 可能会出问题)

  1. 安装多个 node 版本

    • 经过思考比较,最终选择安装不同版本 node 的方案
    • 既要存在 node7 也要保留当前的 node8,调查后发现有以下几个方案
      1. n 管理(最终选择了该方案,方便快速,但不是最佳方案,最佳应该是运行项目,自动选择 node7)
      2. nvm 管理
      3. docker 技术
    • 最终解决了 npm install 失败的问题。
  2. npm run build 失败

    • 看到 package.json 文件中有 build 的指令,就跑了下,结果失败。
    • 看了 build 的指令 "build": "babel src -d lib",坑阿,这只是用 babel 转下 src 文件,并不是 build
  3. 终于找到前端部署的官方文档

    • 在经历了一定艰苦奋战后,我才想起谷歌。去搜索了一番,找来了官方二次开发的文档
    • 原来这坑爹的官方文档在他的 2.0 版本的 readme 中(我装的是 3.5 版)
    • 根据文档,我还要 bower install (bower 又是什么鬼)
  4. bower install 失败

    • 根据报错信息提示,git 有问题,网上搜了下: git 版本太低
    • 安装最新 git 版本,下载源码编译安装,等了很久,终于安装好
    • 再次 bower install ,结果失败,报错信息是下载 github 包失败,推测原因是没有把本机公钥添加到 github 帐户上,git clone 失败,于是把本机公钥添加到 github 帐户上。在服务器随便 git clone 一个包成功
    • 再次 bower install ,结果失败。报错信息 git ssl connect error。网上搜了几个解法方案,最终配置下 git:git config –global http.sslversion tlsv1.

填坑之路结束

后面思考补充下从此次填坑之旅学到了什么。

你可能感兴趣的:(eo_linker 部署填坑记录)