diff --git a/packages/grpc-native-core/src/grpc_extension.js b/packages/grpc-native-core/src/grpc_extension.js index 46e2721d1..9a023b7c3 100644 --- a/packages/grpc-native-core/src/grpc_extension.js +++ b/packages/grpc-native-core/src/grpc_extension.js @@ -31,17 +31,26 @@ var binding; try { binding = require(binding_path); } catch (e) { - var fs = require('fs'); - var searchPath = path.dirname(path.dirname(binding_path)); - var searchName = path.basename(path.dirname(binding_path)); - var foundNames = fs.readdirSync(searchPath); + let fs = require('fs'); + let searchPath = path.dirname(path.dirname(binding_path)); + let searchName = path.basename(path.dirname(binding_path)); + let foundNames; + try { + foundNames = fs.readdirSync(searchPath); + } catch (readDirError) { + let message = `The gRPC binary module was not installed. This may be fixed by running "npm rebuild" +Original error: ${e.message}`; + let error = new Error(message); + error.code = e.code; + throw error; + } if (foundNames.indexOf(searchName) === -1) { - var message = `Failed to load gRPC binary module because it was not installed for the current system + let message = `Failed to load gRPC binary module because it was not installed for the current system Expected directory: ${searchName} Found: [${foundNames.join(', ')}] This problem can often be fixed by running "npm rebuild" on the current system Original error: ${e.message}`; - var error = new Error(message); + let error = new Error(message); error.code = e.code; throw error; } else {