在微信小程序中使用npm安装第三方依赖包有相关的操作步骤,直接贴上官方指引:
https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html#_2-%E6%9E%84%E5%BB%BA-npm
首先我们先执行了安装包命令 npm i sha256 -S
然后在开发工具进行构建,就发现项目中使用报错了:
一顿百度,发现其实是sha256在内部引用了crypto包,而crypto包是node环境的,在小程序不可用;可以看下该问题的官方解答:https://developers.weixin.qq.com/community/develop/doc/0000c415e1c51045c76a03f425b000
出错的原因是找到了,那就会疑惑为什么呢,就去看sha256的npm包,然后看到包的package.json文件的main入口文件竟然是nodecrypto.js
既然lib下有两个文件,还没有什么关系,是不是就是一个是引用crypto,一个就是自己实现的呢;
然后就翻sha256的使用说明,可以看到,上面有讲如果node被检测到,就会使用crypto,不会再实现一次;
node被检测到,不知道是不是就是检测到我们安装了node.js,这个目前还是猜测;
好了,回到上面的问题,sha256有自己的实现文件,那我们肯定是可以使用的;我的做法就是修改了sha256包的package.json文件的main的入口文件地址为
"main": "./lib/sha256.js",然后我们再到开发工具中执行一次构建npm,会发现报错就没了,就可以愉快的使用sha256了;