Commit 1f9f1abb1c930917bca4bd9181fb24d7d2463f04
Committed by
小小鲁班
1 parent
ba852c42
feat: serve editor(front-end) with strapi(koa-static)
Showing
10 changed files
with
145 additions
and
5 deletions
.editorconfig
0 → 100644
.gitignore
back-end/h5-api/config/custom.json
back-end/h5-api/config/environments/development/middleware.json
0 → 100644
back-end/h5-api/config/environments/production/middleware.json
0 → 100644
back-end/h5-api/config/environments/staging/middleware.json
0 → 100644
back-end/h5-api/config/middleware.json
| ... | ... | @@ -9,7 +9,8 @@ |
| 9 | 9 | "gzip" |
| 10 | 10 | ], |
| 11 | 11 | "order": [ |
| 12 | - "Define the middlewares' load order by putting their name in this array is the right order" | |
| 12 | + "Define the middlewares' load order by putting their name in this array is the right order", | |
| 13 | + "editorStatic" | |
| 13 | 14 | ], |
| 14 | 15 | "after": [ |
| 15 | 16 | "parser", | ... | ... |
back-end/h5-api/middlewares/editorStatic/index.js
0 → 100644
| 1 | +/* | |
| 2 | + * @Author: ly525 | |
| 3 | + * @Date: 2020-01-02 21:50:50 | |
| 4 | + * @LastEditors : ly525 | |
| 5 | + * @LastEditTime : 2020-01-11 00:22:10 | |
| 6 | + * @FilePath: /h5-api/api/work/controllers/Work.js | |
| 7 | + * @Github: https://github.com/ly525/luban-h5 | |
| 8 | + * @Description: | |
| 9 | + * serve luban-h5 front-end dist | |
| 10 | + * | |
| 11 | + * You will find information here: | |
| 12 | + * 1. https://github.com/strapi/strapi/issues/3007 | |
| 13 | + * 2. https://stackoverflow.com/questions/55090339/strapi-custom-routes-to-redirect-to-public-directory/55130475#55130475 | |
| 14 | + * 3. https://medium.com/@schalkneethling/automate-package-releases-with-semantic-release-and-commitizen-d7d4c337f04f | |
| 15 | + * 4. https://strapi.io/documentation/3.0.0-beta.x/concepts/middlewares.html#middlewares | |
| 16 | + */ | |
| 17 | + | |
| 18 | +const koaStatic = require('koa-static'); | |
| 19 | +const path = require('path'); | |
| 20 | + | |
| 21 | +module.exports = strapi => { | |
| 22 | + return { | |
| 23 | + // eslint-disable-next-line no-unused-vars | |
| 24 | + initialize: function(cb) { | |
| 25 | + strapi.router.get( | |
| 26 | + '/*', | |
| 27 | + koaStatic(path.resolve('./build-editor')) | |
| 28 | + ); | |
| 29 | + } | |
| 30 | + }; | |
| 31 | +}; | |
| 0 | 32 | \ No newline at end of file | ... | ... |
front-end/h5/vue.config.js
| 1 | 1 | /* |
| 2 | 2 | * @Author: ly525 |
| 3 | 3 | * @Date: 2019-12-14 22:43:55 |
| 4 | - * @LastEditors: ly525 | |
| 5 | - * @LastEditTime: 2020-01-05 22:09:02 | |
| 4 | + * @LastEditors : ly525 | |
| 5 | + * @LastEditTime : 2020-01-10 23:37:15 | |
| 6 | 6 | * @FilePath: /luban-h5/front-end/h5/vue.config.js |
| 7 | 7 | * @Github: https://github.com/ly525/luban-h5 |
| 8 | 8 | * @Description: Do not edit |
| ... | ... | @@ -12,6 +12,7 @@ const path = require('path') |
| 12 | 12 | // const isProd = process.env.NODE_ENV === 'production' |
| 13 | 13 | const target = 'http://localhost:1337' |
| 14 | 14 | const engineOutputDir = path.join(__dirname, '../../back-end/h5-api/public/engine-assets') |
| 15 | +const editorBuildOutputDir = path.join(__dirname, '../../back-end/h5-api/build-editor') | |
| 15 | 16 | |
| 16 | 17 | let page |
| 17 | 18 | switch (process.env.PAGE) { |
| ... | ... | @@ -28,7 +29,8 @@ switch (process.env.PAGE) { |
| 28 | 29 | template: 'public/index.html', |
| 29 | 30 | filename: 'index.html', |
| 30 | 31 | title: 'Index Page', |
| 31 | - outputDir: 'dist' | |
| 32 | + // outputDir: 'dist' | |
| 33 | + outputDir: editorBuildOutputDir | |
| 32 | 34 | // publicPath: isProd ? '/main/' : '/' |
| 33 | 35 | } |
| 34 | 36 | } | ... | ... |
luban-h5.sh
0 → 100755
| 1 | +#!/bin/sh | |
| 2 | + | |
| 3 | +### | |
| 4 | + # @Author: ly525 | |
| 5 | + # @Date: 2020-01-10 22:23:34 | |
| 6 | + # @LastEditors : ly525 | |
| 7 | + # @LastEditTime : 2020-01-10 23:27:59 | |
| 8 | + # @FilePath: /luban-h5/luban-h5.sh | |
| 9 | + # @Github: https://github.com/ly525/luban-h5 | |
| 10 | + # @Description: Do not edit | |
| 11 | + # @Copyright 2018 - 2019 luban-h5. All Rights Reserved | |
| 12 | + ### | |
| 13 | + | |
| 14 | + | |
| 15 | +cur_dir=`pwd` | |
| 16 | + | |
| 17 | +help_usage() { | |
| 18 | +cat << EOT | |
| 19 | +Usage: | |
| 20 | + $(basename $0) [--help|-h] [init|start|restart|stop] | |
| 21 | + | |
| 22 | + help Show usage. | |
| 23 | + | |
| 24 | + init #!en Install dependencies, build front-end && back-end. | |
| 25 | + #!zh 初始化: 安装依赖并编译前后端 | |
| 26 | + | |
| 27 | + start #!en Start the luban-h5 service(powered by pm2). | |
| 28 | + #!zh 启动luban-h5, 执行这一步骤之前, 需要执行 ./$(basename $0) init | |
| 29 | + | |
| 30 | + restart #!en Restart the luban-h5 service. | |
| 31 | + #!zh 重启luban-h5 | |
| 32 | + | |
| 33 | + stop #!em Build binary packages only. | |
| 34 | + #!zh 停止luban-h5 | |
| 35 | + | |
| 36 | +e.g. | |
| 37 | + ./luban-h5.sh init | |
| 38 | + ./luban-h5.sh start | |
| 39 | + ./luban-h5.sh stop | |
| 40 | +EOT | |
| 41 | +exit | |
| 42 | +} | |
| 43 | + | |
| 44 | + | |
| 45 | +luban_h5_init() { | |
| 46 | + # 到前端目录安装依赖,并编译核心编辑器 + 预览引擎 | |
| 47 | + # #!en compile the core editor and preview engine | |
| 48 | + cd front-end/h5 && yarn && yarn build | |
| 49 | + cd ${cur_dir} | |
| 50 | + | |
| 51 | + # 在后端目录,编译后台管理系统 | |
| 52 | + cd back-end/h5-api && yarn && yarn build | |
| 53 | + cd ${cur_dir} | |
| 54 | +} | |
| 55 | + | |
| 56 | +luban_h5_start() { | |
| 57 | + cd back-end/h5-api && npx pm2 start --name luban-h5-service server.js | |
| 58 | + cd ${cur_dir} | |
| 59 | +} | |
| 60 | + | |
| 61 | +luban_h5_restart() { | |
| 62 | + cd back-end/h5-api && npx pm2 restart luban-h5-service | |
| 63 | + cd ${cur_dir} | |
| 64 | +} | |
| 65 | + | |
| 66 | +luban_h5_stop() { | |
| 67 | + cd back-end/h5-api && npx pm2 stop luban-h5-service | |
| 68 | + cd ${cur_dir} | |
| 69 | +} | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | +# Initialization step | |
| 74 | +action=$1 | |
| 75 | +case "$action" in | |
| 76 | + init|start|restart|stop) | |
| 77 | + luban_h5_${action} | |
| 78 | + ;; | |
| 79 | + *) | |
| 80 | + help_usage | |
| 81 | + ;; | |
| 82 | +esac | |
| 0 | 83 | \ No newline at end of file | ... | ... |