Merge pull request #2994 from etiktin/update_native_modules_doc

Update native modules doc
This commit is contained in:
Cheng Zhao 2015-10-06 16:55:25 +08:00
commit 804cf5e8ba
4 changed files with 17 additions and 15 deletions

View file

@ -7,7 +7,7 @@
:zap: *Formerly known as Atom Shell* :zap: :zap: *Formerly known as Atom Shell* :zap:
The Electron framework lets you write cross-platform desktop applications The Electron framework lets you write cross-platform desktop applications
using JavaScript, HTML and CSS. It is based on [io.js](http://iojs.org) and using JavaScript, HTML and CSS. It is based on [Node.js](https://nodejs.org) and
[Chromium](http://www.chromium.org) and is used in the [Atom [Chromium](http://www.chromium.org) and is used in the [Atom
editor](https://github.com/atom/atom). editor](https://github.com/atom/atom).

View file

@ -142,7 +142,7 @@ Returns a boolean whether the image is empty.
Returns the size of the image. Returns the size of the image.
[buffer]: https://iojs.org/api/buffer.html#buffer_class_buffer [buffer]: https://nodejs.org/api/buffer.html#buffer_class_buffer
### `image.setTemplateImage(option)` ### `image.setTemplateImage(option)`

View file

@ -2,7 +2,7 @@
Electron enables you to create desktop applications with pure JavaScript by Electron enables you to create desktop applications with pure JavaScript by
providing a runtime with rich native (operating system) APIs. You could see it providing a runtime with rich native (operating system) APIs. You could see it
as a variant of the io.js runtime that is focused on desktop applications as a variant of the Node.js runtime that is focused on desktop applications
instead of web servers. instead of web servers.
This doesn't mean Electron is a JavaScript binding to graphical user interface This doesn't mean Electron is a JavaScript binding to graphical user interface
@ -22,8 +22,9 @@ multi-process architecture is also used. Each web page in Electron runs in
its own process, which is called __the renderer process__. its own process, which is called __the renderer process__.
In normal browsers, web pages usually run in a sandboxed environment and are not In normal browsers, web pages usually run in a sandboxed environment and are not
allowed access to native resources. Electron users, however, have the power to use allowed access to native resources. Electron users, however, have the power to
io.js APIs in web pages allowing lower level operating system interactions. use Node.js APIs in web pages allowing lower level operating system
interactions.
### Differences Between Main Process and Renderer Process ### Differences Between Main Process and Renderer Process
@ -129,7 +130,7 @@ Finally the `index.html` is the web page you want to show:
</head> </head>
<body> <body>
<h1>Hello World!</h1> <h1>Hello World!</h1>
We are using io.js <script>document.write(process.version)</script> We are using Node.js <script>document.write(process.version)</script>
and Electron <script>document.write(process.versions['electron'])</script>. and Electron <script>document.write(process.versions['electron'])</script>.
</body> </body>
</html> </html>

View file

@ -6,16 +6,17 @@ 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 might break when Node starts using a new version of V8.
native modules written for Node v0.10.x won't work for newer Node or io.js To make sure the module you're interested in will work with Electron, you should
versions. And because Electron internally uses __io.js v3.1.0__, it has the check if it supports the internal Node version used by Electron.
same problem. You can check what version of Node is used in Electron by looking it up in
the [releases](https://github.com/atom/electron/releases) page or by using
`process.version` (see [Quick Start](https://github.com/atom/electron/blob/master/docs/tutorial/quick-start.md)
for example).
To solve this, you should use modules that support Node v0.11.x or later, Consider using [NAN](https://github.com/nodejs/nan/) for your own modules, since
[many modules](https://www.npmjs.org/browse/depended/nan) do support both now. it makes it easier to support multiple versions of Node. It's also helpful for
For old modules that only support Node v0.10.x, you should use the porting old modules to newer versions of Node so they can work with Electron.
[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