From de821c9d0329e901e2bb84be3c6f8327de5f4b5e Mon Sep 17 00:00:00 2001 From: Sam Carlton Date: Thu, 21 Jul 2022 20:28:53 -0500 Subject: [PATCH] Configure node polyfills --- astro.config.mjs | 71 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/astro.config.mjs b/astro.config.mjs index 48491ce..2623cae 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -12,6 +12,15 @@ import tsconfigPaths from 'vite-tsconfig-paths' import { makeViteDefinitions } from './helpers/public-runtime-config.mjs' + + +// yarn add --dev @esbuild-plugins/node-globals-polyfill +// import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill' +// yarn add --dev @esbuild-plugins/node-modules-polyfill +import { NodeModulesPolyfillPlugin } from '@esbuild-plugins/node-modules-polyfill' +// You don't need to add this to deps, it's included by @esbuild-plugins/node-modules-polyfill +import rollupNodePolyFill from 'rollup-plugin-node-polyfills' + console.log( 'Running Astro Config File' ) // https://astro.build/config @@ -53,9 +62,71 @@ export default defineConfig({ tsconfigPaths(), // viteCommonjs() ], + resolve: { + alias: { + // This Rollup aliases are extracted from @esbuild-plugins/node-modules-polyfill, + // see https://github.com/remorses/esbuild-plugins/blob/master/node-modules-polyfill/src/polyfills.ts + // process and buffer are excluded because already managed + // by node-globals-polyfill + util: 'rollup-plugin-node-polyfills/polyfills/util', + sys: 'util', + events: 'rollup-plugin-node-polyfills/polyfills/events', + stream: 'rollup-plugin-node-polyfills/polyfills/stream', + path: 'rollup-plugin-node-polyfills/polyfills/path', + querystring: 'rollup-plugin-node-polyfills/polyfills/qs', + punycode: 'rollup-plugin-node-polyfills/polyfills/punycode', + url: 'rollup-plugin-node-polyfills/polyfills/url', + string_decoder: + 'rollup-plugin-node-polyfills/polyfills/string-decoder', + http: 'rollup-plugin-node-polyfills/polyfills/http', + https: 'rollup-plugin-node-polyfills/polyfills/http', + os: 'rollup-plugin-node-polyfills/polyfills/os', + assert: 'rollup-plugin-node-polyfills/polyfills/assert', + constants: 'rollup-plugin-node-polyfills/polyfills/constants', + _stream_duplex: + 'rollup-plugin-node-polyfills/polyfills/readable-stream/duplex', + _stream_passthrough: + 'rollup-plugin-node-polyfills/polyfills/readable-stream/passthrough', + _stream_readable: + 'rollup-plugin-node-polyfills/polyfills/readable-stream/readable', + _stream_writable: + 'rollup-plugin-node-polyfills/polyfills/readable-stream/writable', + _stream_transform: + 'rollup-plugin-node-polyfills/polyfills/readable-stream/transform', + timers: 'rollup-plugin-node-polyfills/polyfills/timers', + console: 'rollup-plugin-node-polyfills/polyfills/console', + vm: 'rollup-plugin-node-polyfills/polyfills/vm', + zlib: 'rollup-plugin-node-polyfills/polyfills/zlib', + tty: 'rollup-plugin-node-polyfills/polyfills/tty', + domain: 'rollup-plugin-node-polyfills/polyfills/domain' + } + }, + optimizeDeps: { + esbuildOptions: { + // Node.js global to browser globalThis + define: { + global: 'globalThis', + }, + // Enable esbuild polyfill plugins + plugins: [ + // NodeGlobalsPolyfillPlugin({ + // // process: true, + // buffer: true + // }), + NodeModulesPolyfillPlugin() + ] + } + }, build: { commonjsOptions: { transformMixedEsModules: true + }, + rollupOptions: { + plugins: [ + // Enable rollup polyfills plugin + // used during production bundling + // rollupNodePolyFill() + ] } } }