I've created a new Electron-Project with Angular. I build my app with the Angular CLI. Now, I want to communicate from Renderer-Process to Main-Process and get an error in Dev-Tools:
> Uncaught TypeError: fs.existsSync is not a function
at Object.<anonymous> (vendor.bundle.js:72643)
at Object.splitPathRe (vendor.bundle.js:72649)
at __webpack_require__ (inline.bundle.js:53)
at Object.399 (main.bundle.js:54)
at __webpack_require__ (inline.bundle.js:53)
at Object.400 (main.bundle.js:107)
at __webpack_require__ (inline.bundle.js:53)
at Object.291 (main.bundle.js:24)
at __webpack_require__ (inline.bundle.js:53)
at Object.473 (main.bundle.js:234)
at __webpack_require__ (inline.bundle.js:53)
at webpackJsonpCallback (inline.bundle.js:24)
at main.bundle.js:1
I use this Project-Template: https://github.com/auth0-blog/angular2-electron The steps to reproduce this error are:
git clone https://github.com/auth0-blog/angular2-electron
npm install
3.Add following line to src/app/app.component.ts
const {ipcRenderer} = require('electron');
Without that line, the app runs without any problems. Due to electron I have to reference the ipcRenderer that way... https://github.com/electron/electron/blob/master/docs/api/ipc-main.md
I have no idea what I am doing wrong and hope, you can help me.
You can use like below
const { BrowserWindow } = (<any>window).require('electron')
I had a problem and the below code solved it. Hope to solve yours too.
In your yourcustom.component.ts
Webpack brings its own
require
which clobbers node.js'require
, so when yourequire
a node.js core module that webpack can't resolve to one of your files or dependencies, it throws. (You can see in your stack trace that it includes__webpack_require__
. That's because webpack rewrites allrequire
s to__webpack_require__
so that it uses it's own internal node.js-esque system). Webpack is built for the web/browsers so it doesn't play well with node out of the box. To get around it you can use this: https://github.com/chentsulin/webpack-target-electron-renderer.But I'd also consider using webpack at all, see: why use webpack with electron
`
`