Vue+Vite项目使用Verusd RPC TS库遇Buffer未定义错误
解决Vue+Vite项目中Verusd RPC TS客户端的"Buffer is not defined"错误
这个错误源于verus-typescript-primitives(Verusd RPC客户端的依赖库)直接使用了Node.js内置的Buffer对象,但Vite默认在浏览器环境中不提供这类Node.js内置模块支持,单纯安装buffer包无法全局注入该对象。以下是完整解决步骤:
1. 安装必要依赖
执行命令安装buffer和Vite Node.js polyfill插件:
npm install buffer vite-plugin-node-polyfills --save-dev
2. 配置Vite项目
修改项目根目录下的vite.config.js(或vite.config.ts),添加插件并配置全局Buffer注入:
import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import { nodePolyfills } from 'vite-plugin-node-polyfills' export default defineConfig({ plugins: [ vue(), nodePolyfills({ include: ['buffer'], globals: { Buffer: true, }, }), ], resolve: { alias: { buffer: 'buffer', }, }, })
3. 全局注入Buffer(可选兜底)
在项目入口文件(如src/main.js)顶部添加代码,确保浏览器全局对象能访问到Buffer:
import { Buffer } from 'buffer' window.Buffer = Buffer
验证
重启Vite开发服务器,再次调用testConnection函数,"Buffer is not defined"错误应该会消失。
内容的提问来源于stack exchange,提问作者artistAhmed
相关产品推荐
相关产品推荐

