docs: Add notes on old APIs
This commit is contained in:
parent
2ca5a33d28
commit
c5913c3149
1 changed files with 49 additions and 14 deletions
|
@ -9,12 +9,10 @@ desktop applications. Some modules are only available in the main process, some
|
|||
are only available in the renderer process (web page), and some can be used in
|
||||
both processes.
|
||||
|
||||
The basic rule is: if a module is
|
||||
[GUI](https://en.wikipedia.org/wiki/Graphical_user_interface) or low-level
|
||||
system related, then it should be only available in the main process. You need
|
||||
to be familiar with the concept of
|
||||
[main process vs. renderer process](../tutorial/quick-start.md#the-main-process)
|
||||
scripts to be able to use those modules.
|
||||
The basic rule is: if a module is [GUI][gui] or low-level system related, then
|
||||
it should be only available in the main process. You need to be familiar with
|
||||
the concept of [main process vs. renderer process][mai-process] scripts to be
|
||||
able to use those modules.
|
||||
|
||||
The main process script is just like a normal Node.js script:
|
||||
|
||||
|
@ -31,19 +29,56 @@ app.on('ready', function() {
|
|||
});
|
||||
```
|
||||
|
||||
The renderer process is no different than a normal web page, except for the extra
|
||||
ability to use node modules:
|
||||
The renderer process is no different than a normal web page, except for the
|
||||
extra ability to use node modules:
|
||||
|
||||
```html
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<body>
|
||||
<script>
|
||||
const remote = require('electron').remote;
|
||||
console.log(remote.require('electron').app.getVersion());
|
||||
</script>
|
||||
</body>
|
||||
<body>
|
||||
<script>
|
||||
const remote = require('electron').remote;
|
||||
console.log(remote.require('electron').app.getVersion());
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
To run your app, read [Run your app](../tutorial/quick-start.md#run-your-app).
|
||||
|
||||
## Destructuring assignment
|
||||
|
||||
If you are using CoffeeScript or Babel, you can also use
|
||||
[destructuring assignment][desctructuring-assignment] to make it easier to use
|
||||
built-in modules:
|
||||
|
||||
```javascript
|
||||
const {app, BrowserWindow} = require('electron')
|
||||
```
|
||||
|
||||
However if you are using plain JavaScript, you have to wait until Chrome fully
|
||||
supports ES6.
|
||||
|
||||
## Disable old styles of using built-in modules
|
||||
|
||||
Before v0.35.0, all built-in modules have to be used in the form of
|
||||
`require('module-name')`, though it has [many disadvantages][issue-387], we are
|
||||
still supporting it for compatibility with old apps.
|
||||
|
||||
To disable the old styles completely, you can set the
|
||||
`ELECTRON_HIDE_INTERNAL_MODULES` environment variable:
|
||||
|
||||
```javascript
|
||||
process.env.ELECTRON_HIDE_INTERNAL_MODULES = 'true'
|
||||
```
|
||||
|
||||
Or call the `hideInternalModules` API:
|
||||
|
||||
```javascript
|
||||
require('electron').hideInternalModules()
|
||||
```
|
||||
|
||||
[gui]: https://en.wikipedia.org/wiki/Graphical_user_interface
|
||||
[main-process]: ../tutorial/quick-start.md#the-main-process
|
||||
[desctructuring-assignment]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
|
||||
[issue-387]: https://github.com/atom/electron/issues/387
|
||||
|
|
Loading…
Reference in a new issue