若是咱們要在electron裏使用咱們開發的addon,那麼直接使用是不行的。node
官方的解釋是:Electron 一樣也支持原生模塊,但因爲和官方的 Node 相比使用了不一樣的 V8 引擎,若是你想編譯原生模塊,則須要手動設置 Electron 的 headers 的位置。webpack
官方給出了幾種解決辦法,適用於不用場景:git
寫的已經足夠清楚了,就不贅述了。web
由於咱們是使用本身開發的addon,因此採用了這種方式從新編譯:npm
編譯好以後,我把它放在了node_modules/addon裏,另外新建了一個addon.jsjson
const { wirteFile, readFile } = require('./build/Release/addon.node'); module.exports = { 'writeFile': writeFile, 'readFile': readFile }
配置package.json的'main':addon.js"app
結合webpack這樣我就能夠在其它頁面裏經過require('addon')來使用它了,通過測試沒有問題。electron
可是當我打包的時候卻報了這樣一個錯誤,大概是這樣:測試
Module parse failed: src/node_modules/webpack/package.json Line 2: Unexpected token : You may need an appropriate loader to handle this file type.
這是由於webpack裏面沒有適合的loader去解析node文件,因此:
一、npm install --save node-loader
二、在webpack配置文件裏添加相應的rule
module: { rules: [ text: /.node$/, use: 'node-loader' ] }
這樣就OK了。