应用发布
Electron 应用发布
## Release
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 modules might break when Node starts using a new version of V8. To make sure the module you’re interested in will work with Electron, you should check if it supports the internal Node version used by Electron. You can check what version of Node is used in Electron by looking it up in the releases page or by using process.version (see Quick Start for example). Consider using NAN for your own modules, since it makes it easier to support multiple versions of Node. It’s also helpful for porting old modules to newer versions of Node so they can work with Electron.
The Easy Way
The most straightforward way to rebuild native modules is via the electron-rebuild
package, which handles the manual steps of downloading headers and building native modules:
npm install --save-dev electron-rebuild
# Every time you run "npm install", run this
./node_modules/.bin/electron-rebuild
# On Windows if you have trouble, try:
.\node_modules\.bin\electron-rebuild.cmd
The npm Way
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:
export npm_config_disturl=https://atom.io/download/atom-shell
export npm_config_target=0.33.1
export npm_config_arch=x64
export npm_config_runtime=electron
HOME=~/.electron-gyp npm install module-name
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:
$ cd /path-to-module/
$ HOME=~/.electron-gyp node-gyp rebuild --target=0.29.1 --arch=x64 --dist-url=https://atom.io/download/atom-shell
The HOME=~/.electron-gyp
changes where to find development headers. The --target=0.29.1
is version of Electron. The --dist-url=...
specifies where to download the headers. The --arch=x64
says the module is built for 64bit system.
### Executable File
为了使用 Electron 部署你的应用程序,你存放应用程序的文件夹需要叫做 app
并且需要放在 Electron 的资源文件夹下(在 OS X 中是指 Electron.app/Contents/Resources/
,在 Linux 和 Windows 中是指 resources/
) 就像这样:
在 OS X 中:
electron/Electron.app/Contents/Resources/app/
├── package.json
├── main.js
└── index.html
在 Windows 和 Linux 中:
electron/resources/app
├── package.json
├── main.js
└── index.html
然后运行 Electron.app
(或者 Linux 中的 electron
,Windows 中的 electron.exe
), 接着 Electron 就会以你的应用程序的方式启动。electron
文件夹将被部署并可以分发给最终的使用者。
### Package
除了通过拷贝所有的资源文件来分发你的应用程序之外,你可以可以通过打包你的应用程序为一个 asar 库文件以避免暴露你的源代码。
为了使用一个 asar
库文件代替 app
文件夹,你需要修改这个库文件的名字为 app.asar
, 然后将其放到 Electron 的资源文件夹下,然后 Electron 就会试图读取这个库文件并从中启动。 如下所示:
在 OS X 中:
electron/Electron.app/Contents/Resources/
└── app.asar
在 Windows 和 Linux 中:
electron/resources/
└── app.asar
更多的细节请见 Application packaging.
Electron Packager:根据不同平台打包成.app 或者.exe
Electron Packager is known to run on the following host platforms:
- Windows (32/64 bit)
- OS X
- Linux (x86/x86_64)
It generates executables/bundles for the following target platforms:
- Windows (also known as
win32
, for both 32/64 bit) - OS X (also known as
darwin
) / Mac App Store (also known asmas
)* - Linux (for both x86/x86_64)
Running electron-packager from the command line has this basic form:
electron-packager <sourcedir> <appname> --platform=<platform> --arch=<arch> [optional flags...]
This will:
- Find or download the correct release of Electron
- Use that version of Electron to create a app in
/--
(this can be customized via an optional flag)