Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork34
A Vite plugin to polyfill Node's Core Modules for browser environments.
License
davidmyersdev/vite-plugin-node-polyfills
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
A Vite plugin to polyfill Node's Core Modules for browser environments. Supportsnode: protocol imports.
Module "stream" has been externalized for browser compatibility. Cannot access "stream.Readable" in client code.Since browsers do not support Node'sCore Modules, packages that use them must be polyfilled to function in browser environments. In an attempt to prevent runtime errors, Vite produceserrors orwarnings when your code references builtin modules such asfs orpath.
Install the package as a dev dependency.
# npmnpm install --save-dev vite-plugin-node-polyfills# pnpmpnpm install --save-dev vite-plugin-node-polyfills# yarnyarn add --dev vite-plugin-node-polyfills
Add the plugin to yourvite.config.ts file.
import{defineConfig}from'vite'import{nodePolyfills}from'vite-plugin-node-polyfills'// https://vitejs.dev/config/exportdefaultdefineConfig({plugins:[nodePolyfills(),],})
The following options are available to customize it for your needs.
import{defineConfig}from'vite'import{nodePolyfills}from'vite-plugin-node-polyfills'// https://vitejs.dev/config/exportdefaultdefineConfig({plugins:[nodePolyfills({// To add only specific polyfills, add them here. If no option is passed, adds all polyfillsinclude:['path'],// To exclude specific polyfills, add them to this list. Note: if include is provided, this has no effectexclude:['http',// Excludes the polyfill for `http` and `node:http`.],// Whether to polyfill specific globals.globals:{Buffer:true,// can also be 'build', 'dev', or falseglobal:true,process:true,},// Override the default polyfills for specific modules.overrides:{// Since `fs` is not supported in browsers, we can use the `memfs` package to polyfill it.fs:'memfs',},// Whether to polyfill `node:` protocol imports.protocolImports:true,}),],})
- If protocolImports is true, also adds node:[module]
['_stream_duplex','_stream_passthrough','_stream_readable','_stream_transform','_stream_writable','assert','buffer','child_process','cluster','console','constants','crypto','dgram','dns','domain','events','fs','http','http2','https','module','net','os','path','process','punycode','querystring','readline','repl','stream','string_decoder','sys','timers','timers/promises','tls','tty','url','util','vm','zlib',]
Hello! My name is David, and in my spare time, I build tools to help developers be more productive. If you find my work valuable, I would really appreciate asponsorship ordonation. If you want to see more of my work, check outdavidmyers.dev.
Thanks for your support! 🪴
About
A Vite plugin to polyfill Node's Core Modules for browser environments.
Topics
Resources
License
Code of conduct
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors14
Uh oh!
There was an error while loading.Please reload this page.