DEV Community

Shiono Yoshihide
Shiono Yoshihide

Posted on • Edited on

Build an Electron + Next.js app in 3 steps



# 1. Install
$ npm i -g nextron

# 2. Create nextron app (with template of `examples/with-javascript-material-ui`)
$ nextron init test-app --template with-javascript-material-ui

# 3. Run development mode
$ cd test-app
$ yarn (or `npm install`)
$ yarn dev (or `npm run dev`)


Enter fullscreen mode Exit fullscreen mode

nextron

Just released nextron@0.7.5.

Main Changes

  • Fix almost all bugs
  • Upgrade to electron@^2.0.4
  • Upgrade to next@6.1.1
  • Smaller dependencies
  • Easy cli like nextron init test-app
  • More examples (The screenshot above is a top page of examples/with-javascript-material-ui)

Usage

Install



$ npm install --global nextron


Enter fullscreen mode Exit fullscreen mode

Create Application

To create <MY-APP>, just run the command below:



$ nextron init <MY-APP>


Enter fullscreen mode Exit fullscreen mode

Create Application with Template

You can use examples/* sample apps as templating.

To create the example/with-typescript app, run the command below:



$ nextron init <MY-APP> --template with-typescript


Enter fullscreen mode Exit fullscreen mode

Run Electron with Development Mode

Run npm run dev, and nextron automatically launches the electron app.



{
  "scripts": {
    "dev": "nextron"
  }
}


Enter fullscreen mode Exit fullscreen mode

Production Build

Run npm run build, and nextron outputs packaged bundles under the dist folder.



{
  "scripts": {
    "build": "nextron build"
  }
}


Enter fullscreen mode Exit fullscreen mode

console

result

TODO

  • More examples
  • More CLI options
    • ex1.) nextron build --all
    • ex2.) nextron build --ia32 --win
  • Watch changes and hot reloading both main and renderer processes

Top comments (2)

Collapse
 
proteles profile image
Aaron • Edited

You forgot to add "npm install" to your instructions in step 3 after "cd test-app"
otherwise you will get error running yarn dev the first time.

$ cd test-app
$ yarn dev
yarn run v1.7.0
$ nextron
env: node\r: No such file or directory
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

should be

$ cd test-app
$ npm install
$ yarn dev

you can also use the "npm run dev" command instead of "yarn dev"
$ npm run dev

anyhoo...
the output from npm install

> fsevents@1.2.4 install /dev/nextron_example/test-app/node_modules/fsevents
> node install

> pre-commit@1.2.2 install/dev/nextron_example/test-app/node_modules/fs-jetpack/node_modules/pre-commit
> node install.js


> spawn-sync@1.0.15 postinstall /dev/nextron_example/test-app/node_modules/fs-jetpack/node_modules/spawn-sync
> node postinstall


> uglifyjs-webpack-plugin@0.4.6 postinstall /dev/nextron_example/test-app/node_modules/webpack/node_modules/uglifyjs-webpack-plugin
> node lib/post_install.js


> electron@2.0.4 postinstall /dev/nextron_example/test-app/node_modules/electron
> node install.js


> lint-staged@3.6.1 postinstall /dev/nextron_example/test-app/node_modules/fs-jetpack/node_modules/lint-staged
> echo "🚫💩 lint-staged installed! 
Do not forget to configure it. See https://github.com/okonet/lint-staged/blob/master/README.md" && exit 0

🚫💩 lint-staged installed! 
Do not forget to configure it. See https://github.com/okonet/lint-staged/blob/master/README.md
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN ajv-keywords@3.2.0 requires a peer of ajv@^6.0.0 but none is installed. You must install peer dependencies yourself.

added 497 packages from 578 contributors, removed 112 packages, updated 901 packages and audited 10508 packages in 33.888s
found 0 vulnerabilities

then I ran yarn dev...

$ yarn dev

> test-app@1.0.0 dev /dev/nextron_example/test-app
> nextron

✔ Building renderer process
⠹ Building main process

 DONE  Compiled successfully in 290ms                                                                                                                                                                                                                 4:11:22 PM

✔ Building main process

Done! Nextron app started!
2018-07-06 16:11:24.240 Electron Helper[990:29586] Couldn't set selectedTextBackgroundColor from default ()

Collapse
 
saltyshiomix profile image
Shiono Yoshihide • Edited

Thank you for your testing nextron!

Could you try nextron@0.6.8?

(I fixed some npm installation problem.)