1
0
Fork 0
mirror of https://github.com/kou029w/_.git synced 2025-01-30 22:08:02 +00:00

create wmr-ssg

This commit is contained in:
Nebel 2021-10-13 19:40:13 +09:00
parent 70c68198c3
commit 254efe47b6
9 changed files with 132 additions and 0 deletions

3
wmr-ssg/.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
/.cache/
/dist/
/node_modules/

13
wmr-ssg/package.json Normal file
View file

@ -0,0 +1,13 @@
{
"devDependencies": {
"@exampledev/new.css": "^1.1.3",
"@wmrjs/directory-import": "^0.3.0",
"preact": "^10.5.15",
"preact-iso": "^2.3.0",
"wmr": "^3.7.2"
},
"scripts": {
"dev": "wmr",
"build": "wmr build --prerender"
}
}

14
wmr-ssg/public/index.html Normal file
View file

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>wmr-ssg-example</title>
<meta name="viewport" content="width=device-width" />
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@exampledev/new.css/new.min.css"
/>
<script type="module" src="main.tsx"></script>
</head>
<body></body>
</html>

48
wmr-ssg/public/main.tsx Normal file
View file

@ -0,0 +1,48 @@
import {
LocationProvider,
ErrorBoundary,
Router,
lazy,
hydrate,
prerender as ssr,
} from "preact-iso";
// @ts-expect-error
import pages from "dir:./pages";
const routes = (pages as string[]).map((name: string) => {
const filename = name.replace(/\.tsx$/, "");
const url = `/${filename.replace(/_index$/, "")}`;
const Route = lazy(() => import(`./pages/${filename}.tsx`));
console.log(url);
return { url, Route };
});
function App() {
return (
<LocationProvider>
<header>
<nav>
<a href="/">Home</a> / <a href="/hello">Hello</a>
</nav>
</header>
<ErrorBoundary>
<Router>
{routes.map(({ Route, url }) => (
<Route path={url} />
))}
</Router>
</ErrorBoundary>
</LocationProvider>
);
}
export async function prerender() {
return await ssr(<App />);
}
if (typeof window !== "undefined") {
hydrate(<App />, document.body);
}

View file

@ -0,0 +1,5 @@
export default () => (
<main>
<h1>!</h1>
</main>
);

View file

@ -0,0 +1,5 @@
export default () => (
<main>
<h1>Hello!</h1>
</main>
);

13
wmr-ssg/tsconfig.json Normal file
View file

@ -0,0 +1,13 @@
{
"compilerOptions": {
"noEmit": true,
"strict": true,
"target": "esnext",
"module": "esnext",
"moduleResolution": "node",
"lib": ["dom", "dom.iterable", "esnext"],
"jsx": "preserve",
"jsxImportSource": "preact"
},
"include": ["public"]
}

3
wmr-ssg/wmr.config.ts Normal file
View file

@ -0,0 +1,3 @@
import directoryPlugin from "@wmrjs/directory-import";
export default directoryPlugin;

28
wmr-ssg/yarn.lock Normal file
View file

@ -0,0 +1,28 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@exampledev/new.css@^1.1.3":
version "1.1.3"
resolved "https://registry.yarnpkg.com/@exampledev/new.css/-/new.css-1.1.3.tgz#fcc1f15629db8cd105ad2e8c649095ca10623007"
integrity sha512-qhbGfqBRwUlM6MCSaJdUfjq86opNCMvM+6kVvs6S0kYhy0V8dKbe4rDMIklEJGuMc5QH5OuPjdCReu9I0tim2w==
"@wmrjs/directory-import@^0.3.0":
version "0.3.0"
resolved "https://registry.yarnpkg.com/@wmrjs/directory-import/-/directory-import-0.3.0.tgz#cb04113d43e22fcfe4515de14c46643f675b0a3d"
integrity sha512-2Ga/v3/hDL8IOnwlvGax3fB/5+EeNT2JM/fGAFO6rtaiOWJ9GUI5TB+2Z3RRS8hYKEbP5PbEOuUMchObxDWeyA==
preact-iso@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/preact-iso/-/preact-iso-2.3.0.tgz#ab6c5de28df9e0f7a0589dd2175a83ba821f69ec"
integrity sha512-taJmRidbWrjHEhoVoxXS2Kvxa6X3jXSsTtD7rSYeJuxnPNr1ghCu1JUzCrRxmZwTUNWIqwUpNi+AJoLtvCPN7g==
preact@^10.5.15:
version "10.5.15"
resolved "https://registry.yarnpkg.com/preact/-/preact-10.5.15.tgz#6df94d8afecf3f9e10a742fd8c362ddab464225f"
integrity sha512-5chK29n6QcJc3m1lVrKQSQ+V7K1Gb8HeQY6FViQ5AxCAEGu3DaHffWNDkC9+miZgsLvbvU9rxbV1qinGHMHzqA==
wmr@^3.7.2:
version "3.7.2"
resolved "https://registry.yarnpkg.com/wmr/-/wmr-3.7.2.tgz#3d6dfb771fafc0e2119d4502aaea26ecd5963c19"
integrity sha512-i+e/T8J067qP2pBgq6E2gaW9qMGK+D9eGue85YM0Vflc2UuzXBP3fSS5PzvyHEKuPHZWmcFBmZRs6DU9Lkr9og==