From f1eca69d168f84188dcaa01eee5e664713d87fd5 Mon Sep 17 00:00:00 2001 From: DefectingCat Date: Fri, 30 Sep 2022 09:44:12 +0800 Subject: [PATCH] add esm only --- next.config.mjs | 2 ++ package.json | 9 +++++++-- pages/index.tsx | 16 ++++++++++++++-- tsconfig.json | 22 ++++++++++++++++------ yarn.lock | 32 ++++++++++++++++++++++++++++++++ 5 files changed, 71 insertions(+), 10 deletions(-) diff --git a/next.config.mjs b/next.config.mjs index e9907e3..5e6d257 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -22,11 +22,13 @@ const isExport = process.env.NEXT_BUILD === 'export'; const nextConfig = { /* config options here */ reactStrictMode: true, + swcMinify: true, output: 'standalone', images: isExport ? { unoptimized: true } : {}, experimental: { // runtime: 'nodejs', // outputStandalone: true, + esmExternals: true, }, // assetPrefix: isExport ? './' : undefined, // images: diff --git a/package.json b/package.json index 6735591..b64ada8 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,10 @@ "rehype-slug": "^5.0.1", "remark-frontmatter": "^4.0.1", "remark-gfm": "^3.0.1", - "sharp": "^0.31.0" + "rua-three": "^1.0.5", + "sharp": "^0.31.0", + "stats.js": "^0.17.0", + "three": "^0.145.0" }, "devDependencies": { "@testing-library/jest-dom": "^5.16.5", @@ -40,6 +43,8 @@ "@types/jest": "^29.1.0", "@types/node": "18.7.23", "@types/react": "18.0.21", + "@types/stats.js": "^0.17.0", + "@types/three": "^0.144.0", "autoprefixer": "^10.4.12", "cross-env": "^7.0.3", "dotenv": "^16.0.2", @@ -53,4 +58,4 @@ "tailwindcss": "^3.1.8", "typescript": "4.8.4" } -} \ No newline at end of file +} diff --git a/pages/index.tsx b/pages/index.tsx index 576d267..f652d5c 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -2,13 +2,23 @@ import cn from 'classnames'; import dynamic from 'next/dynamic'; import Head from 'next/head'; import { useState } from 'react'; +import { InitFn, useThree } from 'rua-three'; import style from 'styles/index/index.module.css'; import type { NextPageWithLayout } from 'types'; +import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'; const MainLayout = dynamic(() => import('layouts/MainLayout')); +const init: InitFn = ({ scene, camera }) => { + camera.position.set(0, 5, 5); +}; + +console.log(OrbitControls); const Home: NextPageWithLayout = () => { const [showLang, setShowLang] = useState(false); + const { ref } = useThree({ + init, + }); return ( <> @@ -20,7 +30,9 @@ const Home: NextPageWithLayout = () => {

Hi there 👋, I'm Arthur.

-

I'm a Front-end developer. Yes, that's mean

+ + {/* */} + {/*

I'm a Front-end developer. Yes, that's mean

setShowLang(true)} onMouseLeave={() => setShowLang(false)} @@ -51,7 +63,7 @@ const Home: NextPageWithLayout = () => {

Open source is my passion. It's making everything be great.{' '} -

+

*/}
diff --git a/tsconfig.json b/tsconfig.json index 7b6abf7..0984462 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,12 @@ { "compilerOptions": { "baseUrl": ".", - "target": "es5", - "lib": ["dom", "dom.iterable", "esnext"], + "target": "es6", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], "allowJs": true, "skipLibCheck": true, "strict": true, @@ -15,8 +19,14 @@ "isolatedModules": true, "jsx": "preserve", // "typeRoots": ["./types", "./node_modules/@types"], - "incremental": true + "incremental": true, }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], - "exclude": ["node_modules"] -} + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx" + ], + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 42a78dc..56c4198 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2038,6 +2038,11 @@ resolved "https://registry.npmmirror.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== +"@types/stats.js@^0.17.0": + version "0.17.0" + resolved "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.0.tgz#0ed81d48e03b590c24da85540c1d952077a9fe20" + integrity sha512-9w+a7bR8PeB0dCT/HBULU2fMqf6BAzvKbxFboYhmDtDkKPiyXYbjoe2auwsXlEFI7CFNMF1dCv3dFH5Poy9R1w== + "@types/testing-library__jest-dom@^5.9.1": version "5.14.3" resolved "https://registry.npmmirror.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz#ee6c7ffe9f8595882ee7bda8af33ae7b8789ef17" @@ -2045,6 +2050,13 @@ dependencies: "@types/jest" "*" +"@types/three@^0.144.0": + version "0.144.0" + resolved "https://registry.npmjs.org/@types/three/-/three-0.144.0.tgz#a154f40122dbc3668c5424a5373f3965c6564557" + integrity sha512-psvEs6q5rLN50jUYZ3D4pZMfxTbdt3A243blt0my7/NcL6chaCZpHe2csbCtx0SOD9fI/XnF3wnVUAYZGqCSYg== + dependencies: + "@types/webxr" "*" + "@types/tough-cookie@*": version "4.0.2" resolved "https://registry.npmmirror.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397" @@ -2060,6 +2072,11 @@ resolved "https://registry.npmmirror.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== +"@types/webxr@*": + version "0.5.0" + resolved "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.0.tgz#aae1cef3210d88fd4204f8c33385a0bbc4da07c9" + integrity sha512-IUMDPSXnYIbEO2IereEFcgcqfDREOgmbGqtrMpVPpACTU6pltYLwHgVkrnYv0XhWEcjio9sYEfIEzgn3c7nDqA== + "@types/yargs-parser@*": version "21.0.0" resolved "https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" @@ -7744,6 +7761,11 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" +rua-three@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/rua-three/-/rua-three-1.0.5.tgz#a726d7472e964cb63b3897861aeeac4f5b78bb9f" + integrity sha512-a9N2y7Pyq4R1gsa9KRbNvUX6mrY5B3w9NuqUuzvzO32+u9tdC+LwAwqC26s8Inhd34gB12N2INQGk55rR0i0PQ== + run-async@^2.4.0: version "2.4.1" resolved "https://registry.npmmirror.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" @@ -8012,6 +8034,11 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" +stats.js@^0.17.0: + version "0.17.0" + resolved "https://registry.npmjs.org/stats.js/-/stats.js-0.17.0.tgz#b1c3dc46d94498b578b7fd3985b81ace7131cc7d" + integrity sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw== + string-length@^4.0.1: version "4.0.2" resolved "https://registry.npmmirror.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" @@ -8328,6 +8355,11 @@ textextensions@2: resolved "https://registry.npmmirror.com/textextensions/-/textextensions-2.6.0.tgz#d7e4ab13fe54e32e08873be40d51b74229b00fc4" integrity sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ== +three@^0.145.0: + version "0.145.0" + resolved "https://registry.npmjs.org/three/-/three-0.145.0.tgz#a613d71e75effc2aed88be630027ca01e2b6502e" + integrity sha512-EKoHQEtEJ4CB6b2BGMBgLZrfwLjXcSUfoI/MiIXUuRpeYsfK5aPWbYhdtIVWOH+x6X0TouldHKHBuc/LAiFzAw== + through@^2.3.6: version "2.3.8" resolved "https://registry.npmmirror.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"