项目使用 vite + ts 开发模式正常,build时报错如下
Module "events" has been externalized for browser compatibility, imported by
".../node_modules/.pnpm/web3-utils@4.1.0/node_modules/web3-utils/lib/esm/event_emitter.js".
See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
"EventEmitter" is not exported by "__vite-browser-external", imported by
"node_modules/.pnpm/web3-utils@4.1.0/node_modules/web3-utils/lib/esm/event_emitter.js".
原因是使用了nodejs模块
// vite.config.ts
import rollupNodePolyFill from 'rollup-plugin-node-polyfills'
export default defineConfig(({ mode }) => {
...
resolve: {
alias: {
"@": resolve(__dirname, "src"),
events: "rollup-plugin-node-polyfills/polyfills/events"
}
}
...
build: {
rollupOptions: {
plugins: [
// Enable rollup polyfills plugin
// used during production bundling
rollupNodePolyFill()
]
}
}
})