I found the solution! You need to install grpc specifically for electron with this command
npm install grpc --runtime=electron --target=[VERSION] After that it worked with a minor fix to my html file where it had a wrong path. Awesome! On Fri, Apr 20, 2018 at 9:51 AM, Stefan Doerr <[email protected]> wrote: > Okay I see this is a known problem with electron > https://github.com/grpc/grpc/issues/6138 > I'll continue my search over there. I thought since electron is based on > node.js it should work from inside it. > > On Fri, Apr 20, 2018 at 9:47 AM, Stefan Doerr <[email protected]> wrote: > >> Seems like because it is called through electron and not through node.js >> it tries to look in the wrong folder for the extension binary! >> >> Expected directory: electron-v1.8-linux-x64-glibc >> Found: [node-v57-linux-x64-glibc] >> This problem can often be fixed by running "npm rebuild" on the current >> system >> Original error: Cannot find module '/home/stefan/Work/ElectroNGL/ >> node_modules/grpc/src/node/extension_binary/electron-v1.8- >> linux-x64-glibc/grpc_node.node' >> >> But this folder doesn't exist. Would I be able to force it to look for it >> in node-v57-linux-x64-glibc? >> >> On Fri, Apr 20, 2018 at 9:41 AM, Stefan Doerr <[email protected]> >> wrote: >> >>> Same problem actually if I move the require('grpc') inside of main.js >>> >>> ``` >>> main.js >>> >>> 'use strict'; >>> var grpc = require('grpc'); >>> const electron = require('electron'); >>> ``` >>> >>> Throws the same error >>> >>> On Fri, Apr 20, 2018 at 9:34 AM, Stefan Doerr <[email protected]> >>> wrote: >>> >>>> Sure. I tried using it through Electron. So I just start the main.js >>>> with electron and get the error in the js console. >>>> >>>> ``` >>>> main.js >>>> >>>> 'use strict'; >>>> >>>> const electron = require('electron'); >>>> const app = electron.app; >>>> const BrowserWindow = electron.BrowserWindow; >>>> >>>> require('electron-debug')({showDevTools: true}); >>>> >>>> var mainWindow = null; >>>> >>>> app.on('ready', function() { >>>> mainWindow = new BrowserWindow({ >>>> height: 600, >>>> width: 800, >>>> }); >>>> >>>> mainWindow.loadURL('file://' + __dirname + '/app/webapp.html'); >>>> mainWindow.setMenu(null); >>>> }); >>>> ``` >>>> >>>> ``` >>>> webapp.html >>>> >>>> <!DOCTYPE html> >>>> <html lang="en"> >>>> <head> >>>> <title>webapp</title> >>>> <meta charset="utf-8"> >>>> <meta name="viewport" content="width=device-width, user-scalable=no, >>>> minimum-scale=1.0, maximum-scale=1.0"> >>>> <link rel="stylesheet" href="css/font-awesome.min.css" /> >>>> <link rel="stylesheet" href="css/main.css" /> >>>> <link rel="subresource" href="css/light.css" /> >>>> <link rel="subresource" href="css/dark.css" /> >>>> </head> >>>> <body> >>>> <!-- Insert this line above script imports --> >>>> <script>if (typeof module === 'object') {window.module = module; module >>>> = undefined;}</script> >>>> >>>> <!-- normal script imports etc --> >>>> <!-- NGL --> >>>> <script src="dist/ngl.js"></script> >>>> >>>> <!-- UI --> >>>> <script src="js/lib/signals.min.js"></script> >>>> <script src="js/lib/tether.min.js"></script> >>>> <script src="js/lib/colorpicker.min.js"></script> >>>> <script src="js/ui/ui.js"></script> >>>> <script src="js/ui/ui.extra.js"></script> >>>> <script src="js/ui/ui.ngl.js"></script> >>>> <script src="js/gui.js"></script> >>>> >>>> <!-- Insert this line after script imports --> >>>> <script>if (window.module) module = window.module;</script> >>>> </body> >>>> <script> >>>> >>>> //var PROTO_PATH = __dirname + '/../communication.proto'; >>>> var PROTO_PATH = '../communication.proto'; >>>> var grpc = require('grpc'); >>>> var hello_proto = grpc.load(PROTO_PATH).helloworld; >>>> >>>> /** >>>> * Implements the SayHello RPC method. >>>> */ >>>> function sayHello(call, callback) { >>>> callback(null, {message: 'Hello ' + call.request.name}); >>>> } >>>> >>>> /** >>>> * Starts an RPC server that receives requests for the Greeter >>>> service at the >>>> * sample server port >>>> */ >>>> function main() { >>>> var server = new grpc.Server(); >>>> server.addService(hello_proto.Greeter.service, {sayHello: >>>> sayHello}); >>>> server.bind('0.0.0.0:50051', grpc.ServerCredentials.createI >>>> nsecure()); >>>> server.start(); >>>> } >>>> >>>> main(); >>>> console.log('Started server?') >>>> </script> >>>> </html> >>>> ``` >>>> >>>> On Fri, Apr 20, 2018 at 12:40 AM, Spencer Fang <[email protected]> >>>> wrote: >>>> >>>>> Can you share the commands you ran that led to this error? >>>>> >>>>> On Thu, Apr 19, 2018 at 1:41 PM <[email protected]> wrote: >>>>> >>>>>> I am trying to use gRPC for the first time but I am getting following >>>>>> error: >>>>>> >>>>>> Uncaught Error: Failed to load gRPC binary module because it was not >>>>>> installed for the current system >>>>>> Expected directory: electron-v1.8-linux-x64-glibc >>>>>> Found: [node-v57-linux-x64-glibc] >>>>>> This problem can often be fixed by running "npm rebuild" on the >>>>>> current system >>>>>> Original error: Cannot find module '/home/stefan/Work/myproj/node >>>>>> _modules/grpc/src/node/extension_binary/electron-v1.8-linux- >>>>>> x64-glibc/grpc_node.node' >>>>>> at Object.<anonymous> (/home/stefan/Work/myproj/node >>>>>> _modules/grpc/src/grpc_extension.js:53:17) >>>>>> at Object.<anonymous> (/home/stefan/Work/myproj/node >>>>>> _modules/grpc/src/grpc_extension.js:63:3) >>>>>> at Module._compile (module.js:569:30) >>>>>> at Object.Module._extensions..js (module.js:580:10) >>>>>> at Module.load (module.js:503:32) >>>>>> at tryModuleLoad (module.js:466:12) >>>>>> at Function.Module._load (module.js:458:3) >>>>>> at Module.require (module.js:513:17) >>>>>> at require (internal/module.js:11:18) >>>>>> at Object.<anonymous> (/home/stefan/Work/ElectroNGL/ >>>>>> node_modules/grpc/src/client.js:37:12) >>>>>> >>>>>> >>>>>> I checked and my node.js version should be supported >>>>>> $ node --version >>>>>> v8.9.3 >>>>>> >>>>>> >>>>>> Could you help me out with this? >>>>>> >>>>>> Thanks! >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "grpc.io" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected]. >>>>>> To post to this group, send email to [email protected]. >>>>>> Visit this group at https://groups.google.com/group/grpc-io. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/grpc-io/9fa9c6cc-0d1d-49ee >>>>>> -b81e-b3d7a0bbed58%40googlegroups.com >>>>>> <https://groups.google.com/d/msgid/grpc-io/9fa9c6cc-0d1d-49ee-b81e-b3d7a0bbed58%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> >>>>> -- >>>>> Spencer Fang >>>>> >>>> >>>> >>> >> > -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/grpc-io. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/CAKLxUuEhSfb%2BK-Zb4UfjeAFOFYmd4yv2bsAuqEznBcXDtUeQuw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
