Failed to resolve module specifier "vite-plugin-node-polyfills/shims/global". Relative references must start with either "/", "./", or "../".
jsoneaday opened this issue · 7 comments
Hello I've created an npm package using your package and I am able to build successfully. However when it runs on browser I see the error given. I suspect there is an issue in my vite.config.ts file but not sure what it is. Here's my file
`import { defineConfig } from "vite";
import wasm from "vite-plugin-wasm";
import { nodePolyfills } from "vite-plugin-node-polyfills";
import path from "path";
export default defineConfig({
resolve: {
alias: {
process: "process/browser",
path: "path-browserify",
stream: "stream-browserify",
os: "os-browserify",
},
},
plugins: [
wasm(),
nodePolyfills({
// To exclude specific polyfills, add them to this list.
exclude: [
"fs", // Excludes the polyfill for fs
and node:fs
.
//"stream",
],
// Whether to polyfill specific globals.
globals: {
Buffer: true,
global: true,
process: true,
},
// Whether to polyfill node:
protocol imports.
protocolImports: true,
}),
],
build: {
manifest: true,
minify: true,
reportCompressedSize: true,
lib: {
entry: path.resolve(__dirname, "src/main.ts"),
fileName: "main",
formats: ["es", "cjs"],
},
target: "esnext",
rollupOptions: {
external: [
"vite-plugin-node-polyfills/shims/buffer",
"vite-plugin-node-polyfills/shims/global",
"vite-plugin-node-polyfills/shims/process",
],
},
},
});
`
@jsoneaday it looks like you are externalizing the shims for buffer
, global
, and process
. Without a full reproduction, I can't diagnose the problem or provide a fix.
I came across this today and was able to resolve it by telling the plugin NOT to polyfill process:
nodePolyfills({
globals: {
// Don't polyfill these globals
process: false,
Buffer: false,
},
}),
Downgrading this plugin to 0.17.0 fixed this error for me.