From 6d1cb63bf3518ec5505c0f2f9a087570e3a8f5b9 Mon Sep 17 00:00:00 2001 From: yucongshuang Date: Fri, 8 Aug 2025 14:58:36 +0800 Subject: [PATCH 1/6] =?UTF-8?q?server=E9=85=8D=E7=BD=AE=E4=BB=A3=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E6=8F=92=E4=BB=B6=E7=BB=99=E9=A2=84=E8=A7=88=E9=A1=B5?= =?UTF-8?q?=E4=BC=A0=E8=B0=83=E8=AF=95js=20url?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/hap-server/package.json | 3 ++- packages/hap-server/src/preview/create-router.js | 1 + packages/hap-server/src/preview/views/page.html | 10 ++++++++-- packages/hap-server/src/server.js | 15 +++++++++++++++ 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/packages/hap-server/package.json b/packages/hap-server/package.json index 761cb562..c5dcd46d 100644 --- a/packages/hap-server/package.json +++ b/packages/hap-server/package.json @@ -44,6 +44,7 @@ "qr-image": "^3.2.0", "qrcode-terminal": "^0.12.0", "request": "^2.88.2", - "resolve": "^1.22.2" + "resolve": "^1.22.2", + "koa-proxies": "^0.12.4" } } diff --git a/packages/hap-server/src/preview/create-router.js b/packages/hap-server/src/preview/create-router.js index c5f626a6..77d6f5e5 100644 --- a/packages/hap-server/src/preview/create-router.js +++ b/packages/hap-server/src/preview/create-router.js @@ -228,6 +228,7 @@ export default async function createRouter(previewTarget) { type, script, scriptNotFound: !scriptExists(script), + devtoolUrl: browerOptions.options.devtoolUrl || '', webJsUrl: genWebJsUrl(browerOptions.options.version || ctx.conf.options.webVersion), // 更改预览版本号修改为同媒介查询一样的传参方式,同时兼容之前的方式 language: currentLanguage, mediaQueryParams: JSON.stringify(mediaQueryParams) // 传给页面的媒介查询参数 diff --git a/packages/hap-server/src/preview/views/page.html b/packages/hap-server/src/preview/views/page.html index 929d02c6..54757540 100644 --- a/packages/hap-server/src/preview/views/page.html +++ b/packages/hap-server/src/preview/views/page.html @@ -93,6 +93,11 @@ document.write(' + @@ -114,7 +120,7 @@

编译可能存在异常

From 715d9a4cf80db72a127ce9ceee8249258924fc35 Mon Sep 17 00:00:00 2001 From: yucongshuang Date: Mon, 11 Aug 2025 09:53:55 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=87=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/hap-server/src/server.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/hap-server/src/server.js b/packages/hap-server/src/server.js index 0fb8714a..7b803668 100644 --- a/packages/hap-server/src/server.js +++ b/packages/hap-server/src/server.js @@ -26,10 +26,10 @@ export async function launch(conf) { moduler.push((await import('@hap-toolkit/packager')).router, require('./preview/index.js')) } const app = new Koa() - // 改版ide插件的方式h5预览的ajax请求需要设置动态代理 + // 插件方式的预览页面是iframe,快应用开发ajax请求会受同源策略限制,需要做代理转发 app.use(async (ctx, next) => { if (ctx.request.url.startsWith('/api/proxy')) { - const target = ctx.request.url.split('target=')[1] // 从查询参数获取目标地址 + const target = ctx.request.url.split('target=')[1] // 从查询参数获取实际请求的目标地址 // const apiReg = new RegExp(`^${api}/`); return proxies('/api/proxy', { target: target, From 51027b125d5148ea2362ed56c94042b3bab71384 Mon Sep 17 00:00:00 2001 From: yucongshuang Date: Mon, 18 Aug 2025 10:04:35 +0800 Subject: [PATCH 4/6] =?UTF-8?q?ide=E6=96=B0=E5=BB=BA=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E5=8D=A1=E7=89=87=E4=BC=A0=E5=85=A5=E5=8F=82=E6=95=B0=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E6=98=AF=E5=90=A6=E6=AF=8F=E6=AC=A1=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E6=9B=B4=E6=96=B0=E7=94=A8=E6=88=B7=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/hap-toolkit/src/commands/compile.js | 1 + packages/hap-toolkit/src/gen-webpack-conf/helpers.js | 12 +++++++++++- packages/hap-toolkit/src/gen-webpack-conf/index.js | 8 +++++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/hap-toolkit/src/commands/compile.js b/packages/hap-toolkit/src/commands/compile.js index 78a9e52f..028071f0 100644 --- a/packages/hap-toolkit/src/commands/compile.js +++ b/packages/hap-toolkit/src/commands/compile.js @@ -41,6 +41,7 @@ showVersion() * @param {Function} [options.onerror] - 错误回调函数 * @param {String} [options.buildPreviewRpkOptions] - 预览包保存路径,由IDE传入 * @param {Object} [options.compileOptions] - 编译参数,由IDE传入 + * @param {Object} [options.isUpdateDefine=undefined] - 执行compile是否更新webpack注入的变量,ide新建模板卡片会传入 * @param {Object} [options.ideConfig] - cli,由 IDE 传入 * @returns {Promise} - 返回成功与否的信息 */ diff --git a/packages/hap-toolkit/src/gen-webpack-conf/helpers.js b/packages/hap-toolkit/src/gen-webpack-conf/helpers.js index b39e5d93..0c8e0e19 100644 --- a/packages/hap-toolkit/src/gen-webpack-conf/helpers.js +++ b/packages/hap-toolkit/src/gen-webpack-conf/helpers.js @@ -25,7 +25,17 @@ export function getConfigPath(cwd) { } while (++index < configFileList.length) return configPath } - +/** ide新建模板执行编译获取用户配置的路径,变量可变,需要复制一份 + * @param {String} cwd + */ +export function getNewTemplateConfigPath(cwd) { + const defaultConfig = 'quickapp.config.js' + const defaultConfigPath = path.join(cwd, defaultConfig) + const copyConfig = new Date().getTime() + '.js'; + const copyConfigPath = path.join(cwd, copyConfig); + fs.copyFileSync(defaultConfigPath, copyConfigPath); + return copyConfigPath; +} /** * 清理 BUILD_DIR DIST_DIR */ diff --git a/packages/hap-toolkit/src/gen-webpack-conf/index.js b/packages/hap-toolkit/src/gen-webpack-conf/index.js index d3a0e714..776af4bd 100644 --- a/packages/hap-toolkit/src/gen-webpack-conf/index.js +++ b/packages/hap-toolkit/src/gen-webpack-conf/index.js @@ -27,6 +27,7 @@ import { resolveEntries } from '../utils' import getDevtool from './get-devtool' import { getConfigPath, + getNewTemplateConfigPath, cleanup, checkBuiltinModules, setAdaptForV8Version, @@ -64,6 +65,7 @@ const SPLIT_CHUNKS_SUPPORT_VERSION_FROM = 1080 * @param {boolean} [launchOptions.optimizeStyleAppLevel=false] - 优化 app 样式等级 * @param {boolean} [launchOptions.optimizeStylePageLevel=false] - 优化 app 样式等级 * @param {boolean} [launchOptions.splitChunksMode=undefined] - 抽取公共JS + * @param {boolean} [launchOptions.isUpdateDefine=undefined] - 执行compile是否更新webpack注入的变量,ide新建模板卡片会传入 * @param {Object} [options.compileOptions] - 编译参数,由IDE传入 * @param {production|development} mode - webpack mode * @returns {WebpackConfiguration} @@ -76,7 +78,7 @@ export default async function genWebpackConf(launchOptions, mode) { globalConfig.projectPath = path.resolve(globalConfig.projectPath) const cwd = globalConfig.projectPath - const hapConfigPath = getConfigPath(cwd) + const hapConfigPath = launchOptions.isUpdateDefine ? getNewTemplateConfigPath(cwd) :getConfigPath(cwd) // 用于接受quickapp.config.js 或者 hap.config.js中的配置 let quickappConfig // 接受命令行 @@ -92,6 +94,10 @@ export default async function genWebpackConf(launchOptions, mode) { colorconsole.error(`加载webpack配置文件[${hapConfigPath}]出错:${err.message}`) } } + // 获取到更新后的用户配置文件后要删除复制配置文件 + if(launchOptions.isUpdateDefine) { + fs.unlinkSync(hapConfigPath) + } // 接收ide命令行 if (launchOptions.ideConfig && typeof launchOptions.ideConfig.cli === 'object') { launchOptions = Object.assign({}, launchOptions.ideConfig.cli, launchOptions) From 7bbf555255df08e80550a3fa654cbd57dcd3f8fe Mon Sep 17 00:00:00 2001 From: yucongshuang Date: Mon, 18 Aug 2025 10:06:09 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/hap-toolkit/src/gen-webpack-conf/helpers.js | 8 ++++---- packages/hap-toolkit/src/gen-webpack-conf/index.js | 6 ++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/hap-toolkit/src/gen-webpack-conf/helpers.js b/packages/hap-toolkit/src/gen-webpack-conf/helpers.js index 0c8e0e19..8593ff7b 100644 --- a/packages/hap-toolkit/src/gen-webpack-conf/helpers.js +++ b/packages/hap-toolkit/src/gen-webpack-conf/helpers.js @@ -31,10 +31,10 @@ export function getConfigPath(cwd) { export function getNewTemplateConfigPath(cwd) { const defaultConfig = 'quickapp.config.js' const defaultConfigPath = path.join(cwd, defaultConfig) - const copyConfig = new Date().getTime() + '.js'; - const copyConfigPath = path.join(cwd, copyConfig); - fs.copyFileSync(defaultConfigPath, copyConfigPath); - return copyConfigPath; + const copyConfig = new Date().getTime() + '.js' + const copyConfigPath = path.join(cwd, copyConfig) + fs.copyFileSync(defaultConfigPath, copyConfigPath) + return copyConfigPath } /** * 清理 BUILD_DIR DIST_DIR diff --git a/packages/hap-toolkit/src/gen-webpack-conf/index.js b/packages/hap-toolkit/src/gen-webpack-conf/index.js index 776af4bd..a31aa7a0 100644 --- a/packages/hap-toolkit/src/gen-webpack-conf/index.js +++ b/packages/hap-toolkit/src/gen-webpack-conf/index.js @@ -78,7 +78,9 @@ export default async function genWebpackConf(launchOptions, mode) { globalConfig.projectPath = path.resolve(globalConfig.projectPath) const cwd = globalConfig.projectPath - const hapConfigPath = launchOptions.isUpdateDefine ? getNewTemplateConfigPath(cwd) :getConfigPath(cwd) + const hapConfigPath = launchOptions.isUpdateDefine + ? getNewTemplateConfigPath(cwd) + : getConfigPath(cwd) // 用于接受quickapp.config.js 或者 hap.config.js中的配置 let quickappConfig // 接受命令行 @@ -95,7 +97,7 @@ export default async function genWebpackConf(launchOptions, mode) { } } // 获取到更新后的用户配置文件后要删除复制配置文件 - if(launchOptions.isUpdateDefine) { + if (launchOptions.isUpdateDefine) { fs.unlinkSync(hapConfigPath) } // 接收ide命令行 From 6abb18322e425d7939086eef951d76d63a74c136 Mon Sep 17 00:00:00 2001 From: yucongshuang Date: Tue, 19 Aug 2025 16:47:44 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E8=BF=98=E5=8E=9FscriptNotFound=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/hap-server/src/preview/views/page.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/hap-server/src/preview/views/page.html b/packages/hap-server/src/preview/views/page.html index 2b94f638..c5b5aa70 100644 --- a/packages/hap-server/src/preview/views/page.html +++ b/packages/hap-server/src/preview/views/page.html @@ -120,7 +120,7 @@

编译可能存在异常