最近在公司研究js调用c#的方法头疼了好久,也找到了好几种方案,踩了无数的坑。。。于是我把踩坑经验也写出来防止二次踩坑吧!
一:关于Emscripten编译机,将c#文件编译成js文件,这是第一天研究的方案,网上的综合文档比较多,但是由于受版本以及npm(国内npm找包的坑实在太多不忍直视,我现在已经开始使用yarn。。。)的影响和限制经常会报错,最后在一篇文章中找到解决方案,文章贴出来---------------------------------------------------------
2018.08.07 10:51 字数 191 阅读 104评论 0喜欢 0
先看看官方文档: 官方文档
看完感觉特别复杂....一脸懵逼...
再看看 ruanyifeng的文章 url
发现我的windows机器也跑不起来.
用./emsdk
或者 emsdk
命令都会报错..估计是要添加什么环境变量.
↓ 下面介绍 windows系统下最简单的安装方法
nodejs 是必须的.
安装windows-build-toos
安装之前需要保证计算机中已经安装了 .net framework 4.5 +
使用 npm方式安装
npm install -g windows-build-tools
注意: 由于要修改系统文件,必须在 PowerShell 管理员权限下执行上面的命令.
下载 sdk
官方 SDK打开上面的网页, 下载最新版本的 sdk安装包.. .安装...搞定.
二:使用node-gyp模式打包
比较全的就是参考github的地址https://github.com/nodejs/node-gyp,有一点至关重要,
npm install --global windows-build-tools
这段命令最好是使用原生npm下载,不要使用cnpm,否则在最后的build阶段会出现文件缺失类似这种
详细步骤就是先
npm install -g node-gyp
然后npm install --global windows-build-tools
npm config set python /path/to/executable/python2.7
node-gyp configure(会生成一个build文件夹)下图就是成功了
node-gyp configure --msvs_version=2015(成功如下图)
node-gyp build(最终阶段,成功就是如下图)
但是在这样build出来的node文件在非node环境require是会报错的,比如这样
原因是因为node版本和electron版本不一致(这里我是要在electron主进程里面使用),所以需要替换掉之前的
node-gyp configure命令,使用
node-gyp configure rebuild --target=4.0.0 --arch=x64 --target_arch=x64 --host_arch=x64 --dist-url=https://atom.io/download/atom-shell
--target=4.0.0对应的是electron版本号(不要在cmd中看版本,直接在当前项目总查看electron版本就行),然后继续上面的build操作就OK了
顺序执行