electron/docs-translations/zh-TW/tutorial/using-native-node-modules.md

51 lines
2.3 KiB
Markdown
Raw Normal View History

# 使用原生 node 模組
2016-01-28 10:20:39 +00:00
原生的 Node 模組 Electron 都有支援,但自從 Electron 使用了與 Node 官方不同的 V8 版本後,當你要建置原生模組的時候,你需要手動指定 Electron 標頭的位置。
2016-01-28 10:20:39 +00:00
## 原生 Node 模組的相容性
2016-01-28 10:20:39 +00:00
2016-03-31 23:49:59 +00:00
原生模組可能在 Node 開始使用一個新版本的 V8 時毀損,為了確保你想要用的模組能正確與 Electron 一起運行,你應該檢查是否支援 Electron 內部 Node 版本,你可以查看 [releases](https://github.com/electron/electron/releases) 或是使用 `process.version` (範例請見 [Quick Start](https://github.com/electron/electron/blob/master/docs/tutorial/quick-start.md)) 來檢查哪個 Node 版本是現在的 Electron 使用的。
2016-01-28 10:20:39 +00:00
你可以考慮給你自己的模組使用 [NAN](https://github.com/nodejs/nan/),因為它可以較輕易的支援多種版本的 Node它對於移植舊的模組到新版本的 Node 以便與 Electron 一起運作也是很有用的。
2016-01-28 10:20:39 +00:00
## 如何安裝原生模組
2016-01-28 10:20:39 +00:00
三種安裝原生模組的方式:
2016-01-28 10:20:39 +00:00
### 簡單的方法
2016-01-28 10:20:39 +00:00
最直接重新建置原生模組的方法是透過 [`electron-rebuild`](https://github.com/paulcbetts/electron-rebuild) 套件,這個套件處理了手動下載標頭和建制原生模組的步驟:
2016-01-28 10:20:39 +00:00
```sh
npm install --save-dev electron-rebuild
# 每次你執行 "npm install", 執行這句
2016-01-28 10:20:39 +00:00
./node_modules/.bin/electron-rebuild
# 在 Windows 上如果你有狀況,試試看:
2016-01-28 10:20:39 +00:00
.\node_modules\.bin\electron-rebuild.cmd
```
### 使用 npm
2016-01-28 10:20:39 +00:00
你也可以使用 `npm` 安裝模組,步驟與 Node 模組的安裝相同,除了你需要設定一些環境變數:
2016-01-28 10:20:39 +00:00
```bash
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
```
### 使用 node-gyp
2016-01-28 10:20:39 +00:00
要把 Node 模組與 Eletron 的標頭一起建置,你需要告訴 `node-gyp` 下載標頭到哪裡,以及要使用哪個版本:
2016-01-28 10:20:39 +00:00
```bash
$ cd /path-to-module/
$ HOME=~/.electron-gyp node-gyp rebuild --target=0.29.1 --arch=x64 --dist-url=https://atom.io/download/atom-shell
```
`HOME=~/.electron-gyp` 改變了尋找開發標頭的地方,`--target=0.29.1` 是 Eletron 的版本, `--dist-url=...` 指定了下載標頭到哪, `--arch=x64` 指出模組要建置在 64 位元系統。