From f8363f2e9e155d489fb7e4e8e090fe3f4c6c17f7 Mon Sep 17 00:00:00 2001 From: Austin Godber Date: Sun, 14 Apr 2024 09:17:49 -0700 Subject: [PATCH] add template --- template/package.json | 20 +++++++++ .../public/bangers-v20-latin-regular.woff | Bin 0 -> 25108 bytes template/src/Experience.jsx | 28 +++++++++++++ template/src/index.html | 12 ++++++ template/src/index.jsx | 19 +++++++++ template/src/style.css | 11 +++++ template/vite.config.js | 39 ++++++++++++++++++ 7 files changed, 129 insertions(+) create mode 100644 template/package.json create mode 100644 template/public/bangers-v20-latin-regular.woff create mode 100644 template/src/Experience.jsx create mode 100644 template/src/index.html create mode 100644 template/src/index.jsx create mode 100644 template/src/style.css create mode 100644 template/vite.config.js diff --git a/template/package.json b/template/package.json new file mode 100644 index 0000000..c5b7d2c --- /dev/null +++ b/template/package.json @@ -0,0 +1,20 @@ +{ + "name": "threejs-template", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build" + }, + "devDependencies": { + "@vitejs/plugin-react": "4.1", + "vite": "^4.5.0" + }, + "dependencies": { + "react": "18.2", + "react-dom": "18.2", + "@react-three/fiber": "^8.15.8", + "three": "^0.158.0" + } +} \ No newline at end of file diff --git a/template/public/bangers-v20-latin-regular.woff b/template/public/bangers-v20-latin-regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..a84dbc496d54c2fde94e68ee97dfe24ecb209cac GIT binary patch literal 25108 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 P#^B-t0Q)Q^LjV8(4A#wQ literal 0 HcmV?d00001 diff --git a/template/src/Experience.jsx b/template/src/Experience.jsx new file mode 100644 index 0000000..b5bebc1 --- /dev/null +++ b/template/src/Experience.jsx @@ -0,0 +1,28 @@ +import { useThree, extend } from '@react-three/fiber' +import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js' + +extend({ OrbitControls }) + +export default function Experience() +{ + const { camera, gl } = useThree() + + return <> + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/template/src/index.html b/template/src/index.html new file mode 100644 index 0000000..4510fa6 --- /dev/null +++ b/template/src/index.html @@ -0,0 +1,12 @@ + + + + + + + R3F + + +
+ + \ No newline at end of file diff --git a/template/src/index.jsx b/template/src/index.jsx new file mode 100644 index 0000000..2977d5b --- /dev/null +++ b/template/src/index.jsx @@ -0,0 +1,19 @@ +import './style.css' +import ReactDOM from 'react-dom/client' +import { Canvas } from '@react-three/fiber' +import Experience from './Experience.jsx' + +const root = ReactDOM.createRoot(document.querySelector('#root')) + +root.render( + + + +) \ No newline at end of file diff --git a/template/src/style.css b/template/src/style.css new file mode 100644 index 0000000..19cd416 --- /dev/null +++ b/template/src/style.css @@ -0,0 +1,11 @@ +html, +body, +#root +{ + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: ivory; +} \ No newline at end of file diff --git a/template/vite.config.js b/template/vite.config.js new file mode 100644 index 0000000..5b278ef --- /dev/null +++ b/template/vite.config.js @@ -0,0 +1,39 @@ +import react from '@vitejs/plugin-react' +import { transformWithEsbuild } from 'vite' + +export default { + root: 'src/', + publicDir: '../public/', + base: './', + plugins: + [ + // React support + react(), + + // .js file support as if it was JSX + { + name: 'load+transform-js-files-as-jsx', + async transform(code, id) + { + if (!id.match(/src\/.*\.js$/)) + return null + + return transformWithEsbuild(code, id, { + loader: 'jsx', + jsx: 'automatic', + }); + }, + }, + ], + server: + { + host: true, // Open to local network and display URL + open: !('SANDBOX_URL' in process.env || 'CODESANDBOX_HOST' in process.env) // Open if it's not a CodeSandbox + }, + build: + { + outDir: '../dist', // Output in the dist/ folder + emptyOutDir: true, // Empty the folder first + sourcemap: true // Add sourcemap + }, +} \ No newline at end of file