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.

Reply via email to