From be73388918ebed45469a610c57a0b587f18817ef Mon Sep 17 00:00:00 2001 From: Jessica Lord Date: Mon, 31 Aug 2015 19:22:06 -0700 Subject: [PATCH] Standardize native modules --- docs/tutorial/using-native-node-modules.md | 29 ++++++++++++---------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/docs/tutorial/using-native-node-modules.md b/docs/tutorial/using-native-node-modules.md index 918c8a67a94..4d61f70cf6d 100644 --- a/docs/tutorial/using-native-node-modules.md +++ b/docs/tutorial/using-native-node-modules.md @@ -1,37 +1,40 @@ -# Using native Node modules +# Using Native Node Modules The native Node modules are supported by Electron, but since Electron is using a different V8 version from official Node, you have to manually specify the location of Electron's headers when building native modules. -## Native Node module compatibility +## Native Node Module Compatibility Since Node v0.11.x there were vital changes in the V8 API. So generally all -native modules written for Node v0.10.x wouldn't work for newer Node or io.js versions. And -because Electron internally uses __io.js v3.1.0__, it carries with the same -problem. +native modules written for Node v0.10.x won't work for newer Node or io.js +versions. And because Electron internally uses __io.js v3.1.0__, it has the +same problem. To solve this, you should use modules that support Node v0.11.x or later, [many modules](https://www.npmjs.org/browse/depended/nan) do support both now. For old modules that only support Node v0.10.x, you should use the -[nan](https://github.com/rvagg/nan) module to port it to v0.11.x or later versions of Node or io.js. +[nan](https://github.com/rvagg/nan) module to port it to v0.11.x or later +versions of Node or io.js. -## How to install native modules +## How to Install Native Modules + +Three ways to install native modules: ### The Easy Way -The most straightforward way to rebuild native modules is via the -[`electron-rebuild`](https://github.com/paulcbetts/electron-rebuild) package, +The most straightforward way to rebuild native modules is via the +[`electron-rebuild`](https://github.com/paulcbetts/electron-rebuild) package, which handles the manual steps of downloading headers and building native modules: ```sh npm install --save-dev electron-rebuild -# Every time you run npm install, run this too +# Every time you run npm install, run this ./node_modules/.bin/electron-rebuild ``` -### The node-gyp way +### The node-gyp Way To build Node modules with headers of Electron, you need to tell `node-gyp` where to download headers and which version to use: @@ -46,9 +49,9 @@ The `HOME=~/.electron-gyp` changes where to find development headers. The where to download the headers. The `--arch=x64` says the module is built for 64bit system. -### The npm way +### The npm Way -You can also use `npm` to install modules, the steps are exactly the same with +You can also use `npm` to install modules. The steps are exactly the same with Node modules, except that you need to setup some environment variables: ```bash