Standardize native modules
This commit is contained in:
parent
6a2bd80a9a
commit
be73388918
1 changed files with 16 additions and 13 deletions
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue