rsnext/examples/with-electron-typescript
leung018 66597be8a7
Add .yarn/install-state.gz to .gitignore (#56637)
### Reason for making this change
https://yarnpkg.com/getting-started/qa#:~:text=yarn%2Finstall%2Dstate.,your%20workspaces%20all%20over%20again.
In the official documentation of `yarn`, it is stated that `.yarn/install-state.gz` is an optimization file that developer shouldn't ever have to commit. However, currently, when running `create-next-app`, `.yarn/install-state.gz` is being commited.

### Remaining work
I apologize for only modifying one template initially to initiate the discussion first.

If this change is agreed upon,  it should be synchronized with other `.gitignore` templates. Would it be possible to follow a similar approach as in https://github.com/vercel/next.js/pull/47241? I would appreciate any assistance in syncing this change.
2023-10-18 16:34:48 +00:00
..
electron-src up-to-date electron (#25551) 2021-06-03 02:50:44 +00:00
renderer Run next/link codemod for Next.js 13 on examples (#41913) 2022-10-30 21:00:45 +01:00
.gitignore Add .yarn/install-state.gz to .gitignore (#56637) 2023-10-18 16:34:48 +00:00
next.config.js chore(docs): update next export to output: 'export' (#47717) 2023-03-31 02:04:23 +00:00
package.json chore(docs): update next export to output: 'export' (#47717) 2023-03-31 02:04:23 +00:00
README.md chore(docs): update next export to output: 'export' (#47717) 2023-03-31 02:04:23 +00:00

Electron with Typescript application example

This example show how you can use Next.js inside an Electron application to avoid a lot of configuration, use Next.js router as view and use server-render to speed up the initial render of the application. Both Next.js and Electron layers are written in TypeScript and compiled to JavaScript during the build process.

Part Source code (Typescript) Builds (JavaScript)
Next.js /renderer /renderer
Electron /electron-src /main
Production /dist

For development it's going to run a HTTP server and let Next.js handle routing. In production it use output: 'export' to pre-generate HTML static files and use them in your app instead of running an HTTP server.

How to use

Execute create-next-app with npm, Yarn, or pnpm to bootstrap the example:

npx create-next-app --example with-electron-typescript with-electron-typescript-app
yarn create next-app --example with-electron-typescript with-electron-typescript-app
pnpm create next-app --example with-electron-typescript with-electron-typescript-app

Available commands:

"build-renderer": build and transpile Next.js layer
"build-electron": transpile electron layer
"build": build both layers
"dev": start dev version
"dist": create production electron build
"type-check": check TypeScript in project

Notes

You can create the production app using npm run dist.

note regarding types:

  • Electron provides its own type definitions, so you don't need @types/electron installed! source: https://www.npmjs.com/package/@types/electron
  • There were no types available for electron-next at the time of creating this example, so until they are available there is a file electron-next.d.ts in electron-src directory.