Code Monkey home page Code Monkey logo

cross-platform-desktop-applications's Introduction

Cross Platform Desktop Applications

This is a repository containing applications and code samples from the book Cross Platform Desktop Applications With Node, Electron, and NW.js.

Requirements

  • Node.js (v4.0+)
  • NW.js (0.14+)
  • Electron (0.37+)

Installing the code examples

git clone [email protected]:paulbjensen/cross-platform-desktop-applications.git
cd cross-platform-desktop-applications

Browsing the examples

The apps and code samples are organised in folders that match the chapter that they appear in.

Troubleshooting

If you run into any issues running the applications, please create an issue on this Github repository and I will take a look.

License and Credits

© 2016 Paul Jensen. All source code is licensed under the MIT License.

cross-platform-desktop-applications's People

Contributors

dependabot[bot] avatar kaffa avatar memory125 avatar paulbjensen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cross-platform-desktop-applications's Issues

npm run pack, err?

wuwanbing@WUWANBING MINGW64 /E/demo/cross-platform-desktop-applications/chapter-04/lorikeet-electron (master)
$ npm run pack

[email protected] pack E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron
build

No native production dependencies
Packaging for win32 x64 using electron 1.8.8 to dist\win-unpacked
Warning: Application icon is not set, default Electron icon will be used
Unhandled rejection Error: socket hang up
at TLSSocket.onHangUp (_tls_wrap.js:1148:19)
at Object.onceWrapper (events.js:313:30)
at emitNone (events.js:111:20)
at TLSSocket.emit (events.js:208:7)
at endReadableNT (_stream_readable.js:1064:12)
at _combinedTickCallback (internal/process/next_tick.js:139:11)
at process._tickCallback (internal/process/next_tick.js:181:9)
From previous event:
at E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\src\util\nodeHttpExecutor.ts:26:12
at Generator.next ()
at runCallback (timers.js:810:20)
at tryOnImmediate (timers.js:768:5)
at processImmediate [as _immediateCallback] (timers.js:745:5)
From previous event:
at NodeHttpExecutor.download (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\out\util\nodeHttpExecutor.js:139:11)
at download (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder-http\src\httpExecutor.ts:39:38)
at E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder-util\src\binDownload.ts:49:3
at Generator.next ()
at xfs.mkdir.er (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\fs-extra-p\node_modules\fs-extra\lib\mkdirs\mkdirs.js:37:14)
at FSReqWrap.oncomplete (fs.js:135:15)
From previous event:
at doGetBin (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder-util\out\binDownload.js:54:21)
at getBin (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder-util\src\binDownload.ts:23:38)
at getBinFromBintray (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder-util\src\binDownload.ts:13:10)
at Object. (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\src\targets\nsis.ts:23:25)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at targetClass (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\src\winPackager.ts:81:20)
at WinPackager.createTargets (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\src\winPackager.ts:78:73)
at createTargets (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\src\targets\targetFactory.ts:22:12)
at E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\src\packager.ts:175:41
From previous event:
at Packager.doBuild (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\out\packager.js:299:11)
at E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\src\packager.ts:143:38
at Generator.next ()
at runCallback (timers.js:810:20)
at tryOnImmediate (timers.js:768:5)
at processImmediate [as _immediateCallback] (timers.js:745:5)
From previous event:
at Packager.build (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\out\packager.js:251:11)
at E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\src\builder.ts:214:40
at Generator.next ()
From previous event:
at build (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\out\builder.js:63:21)
at Object. (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\out\cli\build-cli.js:68:41)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Function.Module.runMain (module.js:694:10)
at startup (bootstrap_node.js:204:16)
at bootstrap_node.js:625:3
Error: socket hang up
at TLSSocket.onHangUp (_tls_wrap.js:1148:19)
at Object.onceWrapper (events.js:313:30)
at emitNone (events.js:111:20)
at TLSSocket.emit (events.js:208:7)
at endReadableNT (_stream_readable.js:1064:12)
at _combinedTickCallback (internal/process/next_tick.js:139:11)
at process._tickCallback (internal/process/next_tick.js:181:9)
From previous event:
at E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\src\util\nodeHttpExecutor.ts:26:12
at Generator.next ()
at runCallback (timers.js:810:20)
at tryOnImmediate (timers.js:768:5)
at processImmediate [as _immediateCallback] (timers.js:745:5)
From previous event:
at NodeHttpExecutor.download (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\out\util\nodeHttpExecutor.js:139:11)
at download (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder-http\src\httpExecutor.ts:39:38)
at E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder-util\src\binDownload.ts:49:3
at Generator.next ()
at xfs.mkdir.er (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\fs-extra-p\node_modules\fs-extra\lib\mkdirs\mkdirs.js:37:14)
at FSReqWrap.oncomplete (fs.js:135:15)
From previous event:
at doGetBin (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder-util\out\binDownload.js:54:21)
at getBin (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder-util\src\binDownload.ts:23:38)
at getBinFromBintray (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder-util\src\binDownload.ts:13:10)
at getSignVendorPath (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\src\windowsCodeSign.ts:13:10)
at E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\src\winPackager.ts:177:46
From previous event:
at WinPackager.signAndEditResources (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\out\winPackager.js:233:11)
at E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\src\winPackager.ts:190:16
at Generator.next ()
at runCallback (timers.js:810:20)
at tryOnImmediate (timers.js:768:5)
at processImmediate [as _immediateCallback] (timers.js:745:5)
From previous event:
at WinPackager.postInitApp (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\out\winPackager.js:242:11)
at E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\src\platformPackager.ts:203:148
From previous event:
at WinPackager.doPack (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\out\platformPackager.js:262:11)
at E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\src\platformPackager.ts:98:16
at Generator.next ()
From previous event:
at WinPackager.pack (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\out\platformPackager.js:160:11)
at E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\src\packager.ts:175:22
From previous event:
at Packager.doBuild (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\out\packager.js:299:11)
at E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\src\packager.ts:143:38
at Generator.next ()
at runCallback (timers.js:810:20)
at tryOnImmediate (timers.js:768:5)
at processImmediate [as _immediateCallback] (timers.js:745:5)
From previous event:
at Packager.build (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\out\packager.js:251:11)
at E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\src\builder.ts:214:40
at Generator.next ()
From previous event:
at build (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\out\builder.js:63:21)
at Object. (E:\demo\cross-platform-desktop-applications\chapter-04\lorikeet-electron\node_modules\electron-builder\out\cli\build-cli.js:68:41)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Function.Module.runMain (module.js:694:10)
at startup (bootstrap_node.js:204:16)
at bootstrap_node.js:625:3
npm ERR! code ELIFECYCLE
npm ERR! errno 4294967295
npm ERR! [email protected] pack: build
npm ERR! Exit status 4294967295
npm ERR!
npm ERR! Failed at the [email protected] pack script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\wuwanbing\AppData\Roaming\npm-cache_logs\2018-11-30T04_14_14_973Z-debug.log

wuwanbing@WUWANBING MINGW64 /E/demo/cross-platform-desktop-applications/chapter-04/lorikeet-electron (master)
$

Electron 5.0 changed defaults for nodeIntegration

According to this StackOverflow post, as of Electron v5, the default for nodeIntegration changed from true to false, so we need to explicitly enable it by changing the following line in main.js (chapter 2):

mainWindow = new BrowserWindow();

to

mainWindow = new BrowserWindow({ webPreferences: { nodeIntegration: true } });

otherwise the script (in index.html) used to display the home folder will not work.

Lunr.js 2.0 introduces changes that break Lorikeet

See thread: https://forums.manning.com/posts/list/40877.page

Lunr.js 2.0 has switched to immutable indexes, which means that indexes need to be created with the documents in the configuration, rather than added/removed later (as per the 0.x-1.x approach of Lunr).

This means that to make Lorikeet work with the current version of Lunr.js, I will need to change how the code functions. There will be a separate feature branch that will not be merged into the master branch, but act as a fork for people to use when wanting to try Lorikeet with Lunr.js 2.0.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.