虽然vue3已经有了很好的开发体验,但是目前的存量项目中,仍然有很多vue2的项目需要维护,这不得不让人英雄气短,明明有开高铁的技术,却要去赶牛车。不过饭还得恰,打工挣钱嘛,不寒颤!吐槽完毕,下面的问题:
有一个vue-element-admin的后台项目需要加入与metamask的交互,发起交易。考虑到后期可能有的渠道扩展,wagmi是比较好的选择,可以支持主流的metamask,walletconect,coinbase之类的主流钱包,而且配置灵活。
之前在vue3+ts的环境中,安装到使用,一切都如呼吸一样自然顺滑,我本以为这样的日子会一直持续,直到那天,我看见了那个三千多行的.vue文件,人类再次回想不组件化开发的屈辱….
问题1:安装后,引用报语法错误问题
情况就是当你安装之后,你会发现你根本无法启动项目,因为默认情况下,babel-loader
会忽略所有node_modules
的文件,而wagmi的dist之后的文件是es6的语法,所以这里需要在vue.config.js
里面加入本地如下配置 transpiledependencies,使之可以转换,注意这里需要使用npm install,不要使用yarn,或者pnpm,cnpm之类的奇淫巧技
1 | module.exports = { |
这里etherjs也需要配置,当然如果你需要使用到的话。
ok,你以为一切完事大吉,可以开心的开发,然后顺利按时下班了? to yang too simple!
问题2:构建交易Cannot convert a BigInt value to a number报错
当你去构建交易的时候,会提示你"TypeError: Cannot convert a BigInt value to a number"
,此时你需要在package.json
配置
1 | "browserslist": [ |
配置说明,chatgpt如是说:
1 | 在package.json文件中的"browserslist"配置是用来指定项目所支持的浏览器版本范围。这个配置项通常用于前端开发中,特别是在构建和打包过程中,用于确定需要兼容的浏览器范围。 |
关于 BigInt 类型。
这样基本上就可以顺利的在admin的项目中运行起来wagmi交互了。至于wagmi的具体使用与交互细节,点个赞,下篇再说吧…..