vite引入web3及其他相关库等问题
2021-11-17
vite 使用web3,@walletconnect/web3-provider 或者其他库,出了一系列vite的相关问题
// example
Uncaught ReferenceError: process is not defined
Uncaught ReferenceError: global is not defined
Uncaught ReferenceError: Buffer is not defined
...........
最终解决方案
在 index.html添加
<script>window.global = window;</script>
<script type="module">
import process from "process";
import { Buffer } from "buffer";
import EventEmitter from "events";
window.Buffer = Buffer;
window.process = process;
window.EventEmitter = EventEmitter;
</script>
在vite.config.ts
import vue from '@vitejs/plugin-vue'
export default {
resolve: {
alias: {
process: "process/browser",
stream: "stream-browserify",
zlib: "browserify-zlib",
util: 'util'
}
},
plugins: [
vue(),
]
}
添加这些依赖项 browserify-zlib
, events
, process
, stream-browserify
,util
最终完美解决
最新更新
build打包完,还是发现walletconnect的包有点问题。require,buffer之类的问题。
苦寻良久,解决方案
在vite.config.ts
中添加如下配置
//vite.config.ts
import inject from '@rollup/plugin-inject'
build: {
rollupOptions: {
// @ts-ignore
plugins: [inject({ Buffer: ['buffer', 'Buffer'] })],
},
commonjsOptions: {
transformMixedEsModules: true,
},
},
评论区
我也是线上环境使用web3的功能 就报错:TypeError: Cannot read properties of undefined (reading 'call')
请教大佬可有解决? 是什么原因?
跪谢!
大佬,我配置了之后还是不可用,给你发邮件了
大佬,我配置了之后还是不可用,给你发邮件了
已邮件回复你了
江湖救急...你的prod模式没有任何问题吗,web3功能正常使用吗?我本地是没有问题的,一打包后使用功能就报错TypeError: Cannot read properties of undefined (reading 'call')。
兄弟你好,我按照你的方式去做了,但是打包后,线上环境使用web3的功能 就报错:TypeError: Cannot read properties of undefined (reading 'call')。这是什么问题呢,困扰我很久了...
希望你能帮帮我,我愿意有偿求助,方便留个联系方式吗,重谢!
nice