測試環境
vs:vs2017
node.js:9.9.6
相關地址
官方文檔對應地址:https://www.nodejs.org/api/addons.html
官方案例對應地址:https://www.github.com/nodejs/node-addon-examples
安裝所需版本的Node.js
下載並且安裝Node.js,在官網下載安裝包即可。如果不想用最新版本,可以在https://www.nodejs.org/dist/下載別的版本。
安裝Python2.7
安裝Python2.7后,打開CMD,運行npm config set python python2.7。
安裝gyp
以管理員模式打開CMD,運行npm install -g node-gyp,即可安裝。 關於gyp可以參考https://github.com/nodejs/node-gyp#installation,里面有相關的安裝需求說明。
編寫代碼以及配置文件
這個請參考官方文檔。我這里直接以官方案例的HelloWorld為例。
打開CMD,切換目錄至代碼目錄
1_hello_world 下有好幾個文件夾,我選擇了node_0.12,也就是說要切換到這個文件夾下。其中binding.gyp文件為配置文件。hello.cc是我們寫插件代碼的地方。hello.js用於測試。
運行node-gyp configure,如果配置文件沒錯的話,就會出現一個目錄build,里面是VS的工程文件,你就可以使用VS進行編譯了,當然也可以運行node-gyp build來編譯
修改JS文件以及測試
將編譯完的hello.node復制到代碼所在目錄(node_0.12)。
編輯hello.js文件,將
var addon = require('bindings')('hello');
改成
var addon = require('./hello.node');
這里的測試代碼是遠古版本的代碼,所以需要修改。
之后開始測試,打開CMD,切換到hello.js所在目錄,運行node hello.js,如果沒有出問題,cmd就會輸出world字符。
注意
NODE_MODULE(hello, init)中的hello是模塊名,需要與文件名保持一致,不然編譯沒問題,運行時會出錯。因為在require('./hello.node')時,既去找相應的文件,也匹配對應的MODULE。