Skip to content

Commit 6d1cb63

Browse files
author
yucongshuang
committed
server配置代理,插件给预览页传调试js url
1 parent 9156ecf commit 6d1cb63

File tree

4 files changed

+26
-3
lines changed

4 files changed

+26
-3
lines changed

packages/hap-server/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
"qr-image": "^3.2.0",
4545
"qrcode-terminal": "^0.12.0",
4646
"request": "^2.88.2",
47-
"resolve": "^1.22.2"
47+
"resolve": "^1.22.2",
48+
"koa-proxies": "^0.12.4"
4849
}
4950
}

packages/hap-server/src/preview/create-router.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,7 @@ export default async function createRouter(previewTarget) {
228228
type,
229229
script,
230230
scriptNotFound: !scriptExists(script),
231+
devtoolUrl: browerOptions.options.devtoolUrl || '',
231232
webJsUrl: genWebJsUrl(browerOptions.options.version || ctx.conf.options.webVersion), // 更改预览版本号修改为同媒介查询一样的传参方式,同时兼容之前的方式
232233
language: currentLanguage,
233234
mediaQueryParams: JSON.stringify(mediaQueryParams) // 传给页面的媒介查询参数

packages/hap-server/src/preview/views/page.html

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,11 @@
9393
document.write('<script src="/preview-static/web.js">\x3C/script>')
9494
}
9595
</script>
96+
<script type="text/javascript">
97+
if (`{{devtoolUrl}}`) {
98+
document.write('<script src="{{devtoolUrl}}">\x3C/script>')
99+
}
100+
</script>
96101
<script type="text/javascript">
97102
var base = '/preview'
98103
var type = '{{ type }}'
@@ -102,7 +107,8 @@
102107
var routeName = '{{ routeName }}'
103108
Hap.init({
104109
base,
105-
type
110+
type,
111+
'idePlatform': `{{devtoolUrl}}` ? 'extensionOnline': undefined
106112
})
107113
})()
108114
</script>
@@ -114,7 +120,7 @@
114120
<p>编译可能存在异常</p>
115121
</div>
116122
<script type="text/javascript">
117-
if ({{ scriptNotFound }}) {
123+
if (`{{ scriptNotFound }}`) {
118124
// TODO loading
119125
setTimeout(() => {
120126
var el = document.getElementById('scriptNotFound')

packages/hap-server/src/server.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {
1616
} from '@hap-toolkit/shared-utils'
1717
import { browerOptions } from './config'
1818
const moduler = [require('@hap-toolkit/debugger')]
19+
const proxies = require('koa-proxies')
1920
let server = null
2021
export async function launch(conf) {
2122
return new Promise(async (resolve) => {
@@ -25,6 +26,20 @@ export async function launch(conf) {
2526
moduler.push((await import('@hap-toolkit/packager')).router, require('./preview/index.js'))
2627
}
2728
const app = new Koa()
29+
// 改版ide插件的方式h5预览的ajax请求需要设置动态代理
30+
app.use(async (ctx, next) => {
31+
if (ctx.request.url.startsWith('/api/proxy')) {
32+
const target = ctx.request.url.split('target=')[1] // 从查询参数获取目标地址
33+
// const apiReg = new RegExp(`^${api}/`);
34+
return proxies('/api/proxy', {
35+
target: target,
36+
changeOrigin: true,
37+
logs: true,
38+
rewrite: (path) => path.replace(/^\/api\/proxy/, '')
39+
})(ctx, next)
40+
}
41+
return next()
42+
})
2843
let serverPort = globalConfig.server.port
2944
// 如果设置的端口被占用,则自动递增获取可用端口
3045
serverPort = await portfinder.getPortPromise({

0 commit comments

Comments
 (0)