美文网首页
由mac发布的npm包在windows下node-gyp reb

由mac发布的npm包在windows下node-gyp reb

作者: ape_caesar | 来源:发表于2022-03-31 16:43 被阅读0次

    问题

    写了一个node native addon包zip-node-addon, npm发布后在mac上npm install正常,能够正常地node-gyp rebuild并使用, 但是在windows下测试的时候就报出了原c++文件的编译错误,比如说某某标识符未定义,导致不能正常的编译出.node文件。

    解决思路

    我先在windows上直接git clone代码下来,尝试node-gyp rebuild,发现能够正常的node-gyp rebuild得到编译后的.node,然后我就开始对比两份文件有什么区别

    发现问题

    使用certutil -hashfile file.cc md5命令, 对比了npm install下来的文件和github上git clone下来的两个同样的文件,发现他俩的md5是不一样的,原来虽然在vscode上使用“选择文件进行比较”对比两个文件没有差异,但是实际上他俩用了不同的换行符,一个是在mac上npm publish的mac本身的LF, 一个是github克隆下来自动转换为windows的CRLF,而当我们在windows上npm install zip-node-addon的时候得到的LF换行的文件,在编译时的时候就出现了错误识别,认为我语法有问题

    解决办法

    知道原因后解决办法就简单了,我直接在windows上克隆下来代码,然后在windows上npm publish就好了,然后windows下install的时候就能正常编译出.node文件了

    相关文章

      网友评论

          本文标题:由mac发布的npm包在windows下node-gyp reb

          本文链接:https://www.haomeiwen.com/subject/flsnjrtx.html