elementUI官方文档内网部署

背景

为了方便内网查看文档,克隆了一份elementUI的官方文档手册部署到内网,期间也遇到一些问题,记录一下。

内网部署方法

  • 获取官方文档github地址并克隆

    在elementUI官网可以很方便的找到饿了么前端的的github地址:

    https://github.com/ElemeFE/element

  • 打包部署

    查看项目的package.json可以看到可以运行的命令,其中如下命令可以进行部署

    1
    "deploy:build": "npm run build:file && cross-env NODE_ENV=production webpack --config build/webpack.demo.js && echo element.eleme.io>>examples/element-ui/CNAME"

    运行如下命令

    1
    npm run deploy:build
  • 获取打包后的文件

    运行完之后生成打包目录:example\element-ui

  • element-ui目录启动静态http服务器(需安装npm install http-server

    1
    2
    3
    4
    5
    $ http-server
    Starting up http-server, serving ./
    Available on:
    http://127.0.0.1:8080
    Hit CTRL-C to stop the server

    image-20200423205805568

    在没有外网的情况下,发现白屏了。打开开发者工具会发现有几个js获取不到。

  • 配置公共js

    • 在外网环境下载这几个js文件:

      • vue-router.min.js
      • vue.runtime.min.js
      • highlight.pack.b1f71b31-3c07-11e9-ba1a-55bba1877129.js
      • color-brewer.css
      • font_137970_p1tpzmomxp9cnmi.css
    • element-ui目录下建立common目录,并把上面几个js和css文件放在其中

    • 打开element-ui目录下的index.html文件修改js路径

      原html为:

      1
      2
      3
      4
      5
      6
      7
      8
      // header 部分
      <link rel="stylesheet" href="//at.alicdn.com/t/font_137970_p1tpzmomxp9cnmi.css">
      <link rel="stylesheet" href="//shadow.elemecdn.com/npm/highlight.js@9.3.0/styles/color-brewer.css">

      // body 部分
      <script src="//shadow.elemecdn.com/npm/vue@2.5.21/dist/vue.runtime.min.js"></script>
      <script src="//shadow.elemecdn.com/npm/vue-router@3.0.1/dist/vue-router.min.js"></script>
      <script src="//shadow.elemecdn.com/app/element/highlight.pack.b1f71b31-3c07-11e9-ba1a-55bba1877129.js"></script>

      修改为:

      1
      2
      3
      4
      5
      6
       <link rel="stylesheet" href="common/font_137970_p1tpzmomxp9cnmi.css">
      <link rel="stylesheet" href="common/color-brewer.css">

      <script src="common/vue.runtime.min.js"></script>
      <script src="common/vue-router.min.js"></script>
      <script src="common/highlight.pack.b1f71b31-3c07-11e9-ba1a-55bba1877129.js"></script>

    注意:以上目录可自行修改,可以匹配上就可以了。

  • 再次打开浏览器页面,发现页面正常了

    image-20200423210820703

总结

在静态网站搬运的时候尤其要注意打包路径的问题,如果在nginx上部署,也要注意下nginx配置上的路径和转换。