Node Polyfills
dApp-kit has been built on top of Connex, which will require crypto, buffer, http, https and some other node polyfills, check example app configuration files if you are stuck.
1) Require is not a function
this usually happens when working with vite bundler. This config fixes it:
vite.config.ts
export default defineConfig({
...
build: {
commonjsOptions: {
transformMixedEsModules: true,
},
}
...
})
2) [crypto, http, https, stream, etc...] module not found
you miss some node polyfills, the fix depends on the bundler
example for vite bundler using `vite-plugin-node-polyfills`:
vite.config.ts
import { nodePolyfills } from 'vite-plugin-node-polyfills';
export default defineConfig({
plugins: [nodePolyfills()],
...
})
3) Can't find variable [Buffer, process, global]
it's a common issue when you miss other node polyfills. in Angular we fixed it like so:
src/polyfills.ts
(window as any).global = window;
global.Buffer = global.Buffer || require('buffer').Buffer;
(window as any).process = {
env: { DEBUG: undefined },
version: '', // to avoid undefined.slice error
};
Last updated
Was this helpful?