⑴ 如何在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