⑴ 如何在node-webkit中調用dll
要在node-webkit中調用dll,首先需要安裝nodejs,建議下載32位的.msi文件進行安裝。安裝完成後,將安裝目錄添加到環境變數中,例如D:\Program Files\nodejs。這使得該目錄下的node.exe可以在命令行中運行。
其次,安裝python2.7版本,並設置相應的環境變數。然後,下載node-webkit壓縮文件,版本為0.8.4。
接著,安裝node-gyp和nw-gyp。node-gyp是將c文件編譯成nodejs的包的編譯工具,而nw-gyp則是將c文件編譯成node-WebKit的包的編譯工具。具體安裝方法如下:打開cmd命令模式,輸入npm install node-gyp,然後再次輸入npm install nw-gyp。
安裝完成後,需要安裝ffi和ref模塊,並重新編譯成node-webkit可用的包。具體操作是在命令行模式中輸入npm install ffi和npm install ref,這會在本用戶目錄下生成node_moles文件夾。
接下來,通過nw-gyp來將ffi和ref模塊重新編譯。由於ffi中包含ref模塊,因此要先將ffi模塊中的ref模塊編譯,然後再將ffi模塊編譯。注意:編譯命令必須在含有package.json文件的目錄下運行,且命令後應添加—target=0.8.4,這適用於node-webkit的0.8.4版本。如果不是這個版本,需要修改成自己的版本。最後將ref模塊編譯。
編輯項目的package.json文件,此文件是node-webkit調用你的應用的配置文件,需要在裡面添加"webkit": { "plugin": true }。此選項說明你的應用需要調用第三方包,即node_moles/目錄下的ffi和ref包。
接下來,通過一個例子來說明如何在js中調用dll。具體ref模塊的使用方法,可以參考http://tootallnate.github.io/ref/#exports-refType。
最後,將你的應用包括node_moles和需要調用的dll一起壓縮打包,壓縮方式必須是z7(通過好壓或其他壓縮軟體,只要後綴名是.zip的應該都可以),壓縮後的文件後綴名必須是.nw。然後將該文件拷貝到node-webkit的目錄下,拖進nw.exe即可執行。
最後需要注意的是:由於ffi模塊是為C語言的dll包服務的,因此你自己編寫的dll必須要有extern 「C」來修飾。
⑵ node.js使用msi包安裝成功,npm用不了
安裝nodejs
答案是在這里找到的:install in windows,下面簡要的說一下安裝步驟:
1、下載nodejs引擎,32bit version或者64bit version·
2、下載最新版的npm zip格式壓縮包:http://nodejs.org/dist/npm/
3、在硬碟某個位置,如D盤下建立一個文件nodejs,把上面兩個下載的東西都放在這里,npm要解壓。
4、配置兩個環境變數:一個是PATH上增加node.exe的目錄D:\nodejs,一個是增加環境變數NODE_PATH,值為D:\nodejs\node_moles。
更新nodejs的版本可以在命令行中輸入:npm update npm -g
本文於2014.8.15日在解答@Jensen下完善了配圖並幫助其配置成功。
如果以上還是無法解決你的困難,請告知我一聲。
無法安裝npm
如果你發現安裝好nodejs後,使用npm install ** 安裝插件時,下載不了,可能是你的npm 配置由於之前修改過,內容過時了。你可以使用命令:
npm config list 查看以前修改過的命令,針對錯誤的地方刪除掉。
npm config set <key> <value> [--global]
npm config get <key>
npm config delete <key>
npm config list
npm config edit
npm c [set|get|delete|list]
npm get <key>
npm set <key> <value> [--global]
例如你可以刪除代理
npm config delete proxy
刪除注冊的目錄
npm config delete registry
本人由於之前設置了代理的埠為一個錯誤的地址,導致總是無法安裝,如果你發現nodejs 無法安裝npm ,那你就需要查看一下你的npm config是否有錯誤的地方了。
安裝NPM時,可能安裝不了,修改設置:
npm倉庫是國外伺服器,經常連接不上或安裝慢,這里推薦使用 淘寶 NPM 鏡像 來安裝,設置鏡像
//code from http://caibaojian.com/nodejs-roll-back.htmlnpm config set registry https://registry.npm.taobao.org