From e21cb1743afe17bc99d5bcaa3577f40089143baa Mon Sep 17 00:00:00 2001 From: aspsnd <2546697613@qq.com> Date: Mon, 9 Aug 2021 17:15:30 +0800 Subject: [PATCH 1/6] fix: vite.config.ts alias --- vite.config.ts | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/vite.config.ts b/vite.config.ts index 44324fa8..4e97e639 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,5 +1,17 @@ import { resolve } from 'path'; import { defineConfig } from 'vite'; +import { readdirSync, statSync } from "fs"; + +const paths = readdirSync('./packages'); +let alias = []; +for (const path of paths) { + if (statSync(resolve('./packages', path)).isDirectory()) { + alias.push({ + find: `@eva/${path}`, + replacement: resolve(__dirname, `./packages/${path}/lib`) + }) + } +} export default defineConfig({ server: { @@ -11,13 +23,6 @@ export default defineConfig({ base: './', root: './examples', resolve: { - alias: [ - { - find: /@eva\/(.*)/, - replacement: (() => { - return resolve(__dirname, './packages/$1/lib'); - })(), - }, - ], + alias }, }); From 5a27710188ad9ec5581fd131f0a56acf43b7b269 Mon Sep 17 00:00:00 2001 From: aspsnd <2546697613@qq.com> Date: Wed, 11 Aug 2021 14:28:40 +0800 Subject: [PATCH 2/6] fix: vite config --- examples/tsconfig.json | 23 +++++++++++++++++++++++ vite.config.ts => examples/vite.config.ts | 4 ++-- package.json | 2 +- 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 examples/tsconfig.json rename vite.config.ts => examples/vite.config.ts (83%) diff --git a/examples/tsconfig.json b/examples/tsconfig.json new file mode 100644 index 00000000..1afaa1de --- /dev/null +++ b/examples/tsconfig.json @@ -0,0 +1,23 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "rootDir": "../", + "target": "es6", + "paths": { + "@eva/miniprogram-*": [ + "./packages/eva-miniprogram-*/lib" + ], + "@eva/miniprogram-pixi": [ + "./packages/miniprogram-pixi/lib" + ], + "@eva/*": [ + "./packages/*/lib" + ] + } + }, + "include": [ + "../packages/global.d.ts", + "../packages/*/lib", + "./" + ] +} \ No newline at end of file diff --git a/vite.config.ts b/examples/vite.config.ts similarity index 83% rename from vite.config.ts rename to examples/vite.config.ts index 9057a70c..9a46093e 100644 --- a/vite.config.ts +++ b/examples/vite.config.ts @@ -1,4 +1,4 @@ -import { resolve } from 'path'; +import { resolve } from "path"; import { defineConfig } from 'vite'; import { readdirSync, statSync } from 'fs'; @@ -8,7 +8,7 @@ for (const path of paths) { if (statSync(resolve('./packages', path)).isDirectory()) { alias.push({ find: `@eva/${path}`, - replacement: resolve(__dirname, `./packages/${path}/lib`) + replacement: resolve(__dirname, `../packages/${path}/lib`) }) } } diff --git a/package.json b/package.json index a987fd39..a42338ef 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "workspace": "packages", "name": "eva.js", "scripts": { - "dev": "vite ./examples -c ./vite.config.ts", + "dev": "vite ./examples -c ./examples/vite.config.ts", "build": "node ./scripts/build.js", "buildDev": "npm run build -- -a -d -f umd", "buildProd": "npm run build -- -a -p -f cjs-esm-umd", From 87cf4d9710bf3b1030836769c83977571742b185 Mon Sep 17 00:00:00 2001 From: aspsnd <2546697613@qq.com> Date: Wed, 11 Aug 2021 14:43:46 +0800 Subject: [PATCH 3/6] optimize vite import intelligence --- examples/tsconfig.json | 80 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 76 insertions(+), 4 deletions(-) diff --git a/examples/tsconfig.json b/examples/tsconfig.json index 1afaa1de..2ab448ce 100644 --- a/examples/tsconfig.json +++ b/examples/tsconfig.json @@ -4,12 +4,84 @@ "rootDir": "../", "target": "es6", "paths": { - "@eva/miniprogram-*": [ - "./packages/eva-miniprogram-*/lib" + "@eva/eva.js":[ + "./packages/eva.js/lib" ], - "@eva/miniprogram-pixi": [ + "@eva/miniprogram-adapter":[ + "./packages/miniprogram-adapter/lib" + ], + "@eva/miniprogram-pixi":[ "./packages/miniprogram-pixi/lib" ], + "@eva/plugin-a11y":[ + "./packages/plugin-a11y/lib" + ], + "@eva/plugin-evax":[ + "./packages/plugin-evax/lib" + ], + "@eva/plugin-matterjs":[ + "./packages/plugin-matterjs/lib" + ], + "@eva/plugin-renderer":[ + "./packages/plugin-renderer/lib" + ], + "@eva/plugin-renderer-dragonbone":[ + "./packages/plugin-renderer-dragonbone/lib" + ], + "@eva/plugin-renderer-event":[ + "./packages/plugin-renderer-event/lib" + ], + "@eva/plugin-renderer-graphics":[ + "./packages/plugin-renderer-graphics/lib" + ], + "@eva/plugin-renderer-img":[ + "./packages/plugin-renderer-img/lib" + ], + "@eva/plugin-renderer-lottie":[ + "./packages/plugin-renderer-lottie/lib" + ], + "@eva/plugin-renderer-mask":[ + "./packages/plugin-renderer-mask/lib" + ], + "@eva/plugin-renderer-nine-patch":[ + "./packages/plugin-renderer-nine-patch/lib" + ], + "@eva/plugin-renderer-render":[ + "./packages/plugin-renderer-render/lib" + ], + "@eva/plugin-renderer-spine":[ + "./packages/plugin-renderer-spine/lib" + ], + "@eva/plugin-renderer-spine38":[ + "./packages/plugin-renderer-spine38/lib" + ], + "@eva/plugin-renderer-sprite":[ + "./packages/plugin-renderer-sprite/lib" + ], + "@eva/plugin-renderer-sprite-animation":[ + "./packages/plugin-renderer-sprite-animation/lib" + ], + "@eva/plugin-renderer-test":[ + "./packages/plugin-renderer-test/lib" + ], + "@eva/plugin-renderer-text":[ + "./packages/plugin-renderer-text/lib" + ], + "@eva/plugin-renderer-tiling-sprite":[ + "./packages/plugin-renderer-tiling-sprite/lib" + ], + "@eva/plugin-sound":[ + "./packages/plugin-sound/lib" + ], + "@eva/plugin-stats":[ + "./packages/plugin-stats/lib" + ], + "@eva/plugin-transition":[ + "./packages/plugin-transition/lib" + ], + "@eva/drenderer-adapter":[ + "./packages/drenderer-adapter/lib" + ], "@eva/*": [ "./packages/*/lib" ] @@ -20,4 +92,4 @@ "../packages/*/lib", "./" ] -} \ No newline at end of file +} From f2273d67d3784ebd580187cc8bf12ada14e35ba1 Mon Sep 17 00:00:00 2001 From: aspsnd <2546697613@qq.com> Date: Wed, 11 Aug 2021 17:24:02 +0800 Subject: [PATCH 4/6] fix: clean body margin --- examples/index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/index.html b/examples/index.html index 7e73edc5..166a703c 100644 --- a/examples/index.html +++ b/examples/index.html @@ -17,6 +17,7 @@ body { width: 100vw; height: 100vh; + margin: 0; } #canvas { width: 100vw; From e86f6ba7464570037fc9458b8999e48cea66ded5 Mon Sep 17 00:00:00 2001 From: aspsnd <2546697613@qq.com> Date: Tue, 31 Aug 2021 17:55:40 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E9=BB=98=E8=AE=A4=E4=B8=8D=E5=BC=80?= =?UTF-8?q?=E5=90=AFvconsole?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/index.ts b/examples/index.ts index 95a56739..75ceb7ab 100644 --- a/examples/index.ts +++ b/examples/index.ts @@ -21,7 +21,7 @@ if (modules[path]) { document.title = module.name; module.init(canvas); })(); - if (/android|phone|mobile|ipad/i.test(navigator.userAgent) && location.search.length < 1) { + if (/android|phone|mobile|ipad/i.test(navigator.userAgent) && location.search.length > 1) { new VConsole(); } } else { From ea9e2dcb712f7d9c2020c87f6a23d2de8dfa74f8 Mon Sep 17 00:00:00 2001 From: aspsnd <2546697613@qq.com> Date: Wed, 1 Sep 2021 16:27:24 +0800 Subject: [PATCH 6/6] feat: change method to open VConsole --- examples/README.md | 6 +++++ examples/index.ts | 11 ++++++-- examples/vopen.ts | 67 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 examples/vopen.ts diff --git a/examples/README.md b/examples/README.md index 3662da52..fcc2223b 100644 --- a/examples/README.md +++ b/examples/README.md @@ -15,3 +15,9 @@ Example: ``` This development way prefer incresing your development efficiency to making an example for Eva.js learner. + +## Vconsole打开方式 +在非首页页面中,在手机环境里 + +- 设置href中search里debug=true可以开启VConsole +- 或者在屏幕上画V字也会打开VConsole \ No newline at end of file diff --git a/examples/index.ts b/examples/index.ts index 75ceb7ab..4f61ff5d 100644 --- a/examples/index.ts +++ b/examples/index.ts @@ -21,8 +21,15 @@ if (modules[path]) { document.title = module.name; module.init(canvas); })(); - if (/android|phone|mobile|ipad/i.test(navigator.userAgent) && location.search.length > 1) { - new VConsole(); + if (/android|phone|mobile|ipad/i.test(navigator.userAgent)) { + if (/\bdebug=true\b/.test(location.search)) { + new VConsole(); + } else { + window.addEventListener('openvconsole', () => { + new VConsole(); + }) + import('./vopen'); + } } } else { const ul = document.createElement('ul'); diff --git a/examples/vopen.ts b/examples/vopen.ts new file mode 100644 index 00000000..19ef295c --- /dev/null +++ b/examples/vopen.ts @@ -0,0 +1,67 @@ +let step: number = 0; +let checking = false; +let begin = [0, 0]; +let changedTimes = 0; +let falseTimes = 0; +let now = [0, 0]; +let middle = [0, 0]; +let startHadler = e => { + if (checking) return; + now = begin = [e.touches[0].pageX / window.innerWidth, e.touches[0].pageY / window.innerHeight]; + checking = true; + falseTimes = changedTimes = 0; + checking = true; + step = 0; + middle = [0, 0]; +}; +document.addEventListener('touchstart', startHadler); +let moveHandler = (e: TouchEvent) => { + if (!checking) return; + let current = [e.changedTouches[0].pageX / window.innerWidth, e.changedTouches[0].pageY / window.innerHeight]; + let changed = [current[0] - now[0], current[1] - now[1]]; + now = current; + changedTimes++; + if (step === 0) { + if (changed[0] < 0 || changed[1] < 0) { + falseTimes++; + } + checkStepOrOver(); + } else { + if (changed[0] < 0 || changed[1] > 0) { + falseTimes++; + } + checkStepOrOver(); + } +} +function checkStepOrOver() { + if (step === 0) { + if (now[0] - begin[0] > .2 && now[1] - begin[1] > .2) { + middle = now; + step = 1; + } + } else { + if (falseTimes / changedTimes > .3) return; + if (now[0] - middle[0] > .2 && middle[1] - now[1] > .2) { + document.removeEventListener('touchstart', startHadler); + document.removeEventListener('touchmove', moveHandler); + document.removeEventListener('touchcancel', endHandler); + document.removeEventListener('touchend', endHandler); + const event = document.createEvent('MessageEvent'); + event.initEvent('openvconsole'); + window.dispatchEvent(event); + } + } +} +document.addEventListener('touchmove', moveHandler); + +let endHandler = () => { + begin = [0, 0]; + now = [0, 0]; + checking = false; + falseTimes = changedTimes = 0; + step = 0; + middle = [0, 0]; +}; +document.addEventListener('touchend', endHandler); +document.addEventListener('touchcancel', endHandler); +export default true;