rayvo 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +51 -0
  2. package/vite.config.ts +73 -0
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "rayvo",
3
+ "version": "0.0.1",
4
+ "type": "module",
5
+ "scripts": {
6
+ "dev": "vite",
7
+ "build": "vite build",
8
+ "typecheck": "vue-tsc -b --force",
9
+ "build:wasm": "node engine/core/wasm/build.mjs",
10
+ "build:wasm:geom": "node engine/core/wasm/build.mjs geom",
11
+ "build:wasm:transform": "node engine/core/wasm/build.mjs transform",
12
+ "preview": "vite preview",
13
+ "test:e2e": "playwright test --config playwright.config.ts",
14
+ "test:e2e:render-pipeline": "node scripts/e2e-render-pipeline.mjs",
15
+ "test:e2e:install": "playwright install chromium"
16
+ },
17
+ "dependencies": {
18
+ "playcanvas": "^2.17.2",
19
+ "sass": "^1.86.3",
20
+ "three": "^0.185.1",
21
+ "v-object-inspector": "^0.1.3",
22
+ "vue": "^3.5.13",
23
+ "vue-class-component": "^7.2.6",
24
+ "vue-router": "4",
25
+ "vuex": "^4.1.0",
26
+ "webgpu-utils": "^1.11.0",
27
+ "wgsl_reflect": "^1.2.0"
28
+ },
29
+ "devDependencies": {
30
+ "@playwright/test": "^1.51.0",
31
+ "@types/node": "^22.14.1",
32
+ "@types/three": "^0.182.0",
33
+ "@vitejs/plugin-vue": "^5.2.1",
34
+ "@vue/tsconfig": "^0.7.0",
35
+ "@webgpu/types": "^0.1.x",
36
+ "terser": "5.50.0",
37
+ "typescript": "~5.7.2",
38
+ "vite": "^6.3.0",
39
+ "vue-tsc": "^2.2.4",
40
+ "wasm-pack": "^0.14.0"
41
+ },
42
+ "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e",
43
+ "description": "Rayvo package.",
44
+ "files": [
45
+ "./vite.config.ts"
46
+ ],
47
+ "publishConfig": {
48
+ "access": "public",
49
+ "registry": "https://registry.npmjs.org/"
50
+ }
51
+ }
package/vite.config.ts ADDED
@@ -0,0 +1,73 @@
1
+ import { defineConfig } from 'vite'
2
+ import vue from '@vitejs/plugin-vue'
3
+ import { resolve } from 'path'
4
+
5
+ // https://vite.dev/config/
6
+ import type { HmrContext } from 'vite'
7
+
8
+ // 自定义插件:文件变化时强制刷新页面
9
+ function fullReloadPlugin() {
10
+ return {
11
+ name: 'full-reload',
12
+ handleHotUpdate({ server }: HmrContext) {
13
+ server.ws.send({ type: 'full-reload' })
14
+ return []
15
+ }
16
+ }
17
+ }
18
+
19
+
20
+ export default defineConfig({
21
+ plugins: [vue(), fullReloadPlugin()],
22
+ server: {
23
+ port: 8888,
24
+ strictPort: true,
25
+ open: false, // 禁止自动打开浏览器
26
+ watch: {
27
+ usePolling: false, // 如果文件变化检测不到,可以改为 true
28
+ }
29
+ },
30
+ resolve: {
31
+ alias: {
32
+ '@engine': resolve(__dirname, 'engine'),
33
+ }
34
+ },
35
+ build: {
36
+ // WebGPU 仅面向现代浏览器;保留原生私有字段等语法,避免热路径降级为 helper/WeakMap。
37
+ target: 'esnext',
38
+ // 使用 Terser 多轮压缩;不生成 source map,增加产物的阅读和还原成本。
39
+ minify: 'terser',
40
+ sourcemap: false,
41
+ terserOptions: {
42
+ compress: {
43
+ passes: 3,
44
+ },
45
+ mangle: {
46
+ toplevel: true,
47
+ },
48
+ format: {
49
+ comments: false,
50
+ },
51
+ },
52
+ rollupOptions: {
53
+ input: {
54
+ main: resolve(__dirname, 'index.html'),
55
+ docs: resolve(__dirname, 'docs/index.html'),
56
+ examplesUi: resolve(__dirname, 'examples/prototype-ui/index.html'),
57
+ demo: resolve(__dirname, 'examples/webgpu-demo/index.html'),
58
+ perfTest: resolve(__dirname, 'examples/performance-test/index.html'),
59
+ massiveTest: resolve(__dirname, 'examples/massive-test/index.html'),
60
+ wgslOffset: resolve(__dirname, 'examples/wgsl-offset-computer/index.html'),
61
+ benchRaycast: resolve(__dirname, 'examples/bench-raycast/index.html'),
62
+ tests: resolve(__dirname, 'tests/index.html'),
63
+ testsUi: resolve(__dirname, 'tests/prototype-ui/index.html'),
64
+ },
65
+ output: {
66
+ // 产物仅保留内容哈希,不暴露入口、模块和原始资源名称。
67
+ entryFileNames: 'assets/[hash].js',
68
+ chunkFileNames: 'assets/[hash].js',
69
+ assetFileNames: 'assets/[hash][extname]',
70
+ },
71
+ }
72
+ }
73
+ })