Great! Thank you for sharing your solution with the community.

On Fri, Apr 20, 2018 at 1:01 AM Stefan Doerr <[email protected]> wrote:

> 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.createInsecure());
>>>>>       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
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>

-- 
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/CAK%3D-x_4L06ABu6Gz%2BNB%3DOmx1P%3DBv9yD6AcPnGV-7utrp-DPMsw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to