Add node polyfills
This commit is contained in:
parent
4ea14c853e
commit
b538351cfe
3 changed files with 127 additions and 0 deletions
63
package-lock.json
generated
63
package-lock.json
generated
|
@ -40,6 +40,7 @@
|
||||||
"twemoji": "14.0.2"
|
"twemoji": "14.0.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@esbuild-plugins/node-globals-polyfill": "0.2.3",
|
||||||
"@rollup/plugin-wasm": "6.1.1",
|
"@rollup/plugin-wasm": "6.1.1",
|
||||||
"@types/node": "18.11.18",
|
"@types/node": "18.11.18",
|
||||||
"@types/react": "18.0.26",
|
"@types/react": "18.0.26",
|
||||||
|
@ -56,6 +57,7 @@
|
||||||
"eslint-plugin-react-hooks": "4.6.0",
|
"eslint-plugin-react-hooks": "4.6.0",
|
||||||
"mini-svg-data-uri": "1.4.4",
|
"mini-svg-data-uri": "1.4.4",
|
||||||
"prettier": "2.8.1",
|
"prettier": "2.8.1",
|
||||||
|
"rollup-plugin-node-polyfills": "0.2.1",
|
||||||
"sass": "1.56.2",
|
"sass": "1.56.2",
|
||||||
"typescript": "4.9.4",
|
"typescript": "4.9.4",
|
||||||
"vite": "4.0.1",
|
"vite": "4.0.1",
|
||||||
|
@ -454,6 +456,15 @@
|
||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@esbuild-plugins/node-globals-polyfill": {
|
||||||
|
"version": "0.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.2.3.tgz",
|
||||||
|
"integrity": "sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==",
|
||||||
|
"dev": true,
|
||||||
|
"peerDependencies": {
|
||||||
|
"esbuild": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@esbuild/android-arm": {
|
"node_modules/@esbuild/android-arm": {
|
||||||
"version": "0.16.9",
|
"version": "0.16.9",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.9.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.9.tgz",
|
||||||
|
@ -2646,6 +2657,12 @@
|
||||||
"node": ">=4.0"
|
"node": ">=4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/estree-walker": {
|
||||||
|
"version": "0.6.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
|
||||||
|
"integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"node_modules/esutils": {
|
"node_modules/esutils": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
|
||||||
|
@ -4490,6 +4507,45 @@
|
||||||
"fsevents": "~2.3.2"
|
"fsevents": "~2.3.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/rollup-plugin-inject": {
|
||||||
|
"version": "3.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz",
|
||||||
|
"integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==",
|
||||||
|
"deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject.",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"estree-walker": "^0.6.1",
|
||||||
|
"magic-string": "^0.25.3",
|
||||||
|
"rollup-pluginutils": "^2.8.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/rollup-plugin-inject/node_modules/magic-string": {
|
||||||
|
"version": "0.25.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
|
||||||
|
"integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"sourcemap-codec": "^1.4.8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/rollup-plugin-node-polyfills": {
|
||||||
|
"version": "0.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz",
|
||||||
|
"integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"rollup-plugin-inject": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/rollup-pluginutils": {
|
||||||
|
"version": "2.8.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
|
||||||
|
"integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"estree-walker": "^0.6.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/run-parallel": {
|
"node_modules/run-parallel": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
|
||||||
|
@ -4658,6 +4714,13 @@
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/sourcemap-codec": {
|
||||||
|
"version": "1.4.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
|
||||||
|
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
|
||||||
|
"deprecated": "Please use @jridgewell/sourcemap-codec instead",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"node_modules/string.prototype.matchall": {
|
"node_modules/string.prototype.matchall": {
|
||||||
"version": "4.0.8",
|
"version": "4.0.8",
|
||||||
"resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz",
|
||||||
|
|
|
@ -50,6 +50,7 @@
|
||||||
"twemoji": "14.0.2"
|
"twemoji": "14.0.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@esbuild-plugins/node-globals-polyfill": "0.2.3",
|
||||||
"@rollup/plugin-wasm": "6.1.1",
|
"@rollup/plugin-wasm": "6.1.1",
|
||||||
"@types/node": "18.11.18",
|
"@types/node": "18.11.18",
|
||||||
"@types/react": "18.0.26",
|
"@types/react": "18.0.26",
|
||||||
|
@ -66,6 +67,7 @@
|
||||||
"eslint-plugin-react-hooks": "4.6.0",
|
"eslint-plugin-react-hooks": "4.6.0",
|
||||||
"mini-svg-data-uri": "1.4.4",
|
"mini-svg-data-uri": "1.4.4",
|
||||||
"prettier": "2.8.1",
|
"prettier": "2.8.1",
|
||||||
|
"rollup-plugin-node-polyfills": "0.2.1",
|
||||||
"sass": "1.56.2",
|
"sass": "1.56.2",
|
||||||
"typescript": "4.9.4",
|
"typescript": "4.9.4",
|
||||||
"vite": "4.0.1",
|
"vite": "4.0.1",
|
||||||
|
|
|
@ -2,6 +2,8 @@ import { defineConfig } from 'vite';
|
||||||
import react from '@vitejs/plugin-react';
|
import react from '@vitejs/plugin-react';
|
||||||
import { wasm } from '@rollup/plugin-wasm';
|
import { wasm } from '@rollup/plugin-wasm';
|
||||||
import { viteStaticCopy } from 'vite-plugin-static-copy';
|
import { viteStaticCopy } from 'vite-plugin-static-copy';
|
||||||
|
import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill';
|
||||||
|
import rollupNodePolyFill from 'rollup-plugin-node-polyfills'
|
||||||
import { svgLoader } from './viteSvgLoader';
|
import { svgLoader } from './viteSvgLoader';
|
||||||
|
|
||||||
const copyFiles = {
|
const copyFiles = {
|
||||||
|
@ -25,6 +27,42 @@ const copyFiles = {
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const nodePolyfillAliases = {
|
||||||
|
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',
|
||||||
|
buffer: 'rollup-plugin-node-polyfills/polyfills/buffer-es6',
|
||||||
|
process: 'rollup-plugin-node-polyfills/polyfills/process-es6'
|
||||||
|
}
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
appType: 'spa',
|
appType: 'spa',
|
||||||
publicDir: false,
|
publicDir: false,
|
||||||
|
@ -38,9 +76,33 @@ export default defineConfig({
|
||||||
wasm(),
|
wasm(),
|
||||||
react(),
|
react(),
|
||||||
],
|
],
|
||||||
|
resolve: {
|
||||||
|
alias: nodePolyfillAliases
|
||||||
|
},
|
||||||
|
optimizeDeps: {
|
||||||
|
esbuildOptions: {
|
||||||
|
define: {
|
||||||
|
global: 'globalThis'
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
// Enable esbuild polyfill plugins
|
||||||
|
NodeGlobalsPolyfillPlugin({
|
||||||
|
process: false,
|
||||||
|
buffer: true,
|
||||||
|
}),
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
build: {
|
build: {
|
||||||
outDir: 'dist',
|
outDir: 'dist',
|
||||||
sourcemap: true,
|
sourcemap: true,
|
||||||
copyPublicDir: false,
|
copyPublicDir: false,
|
||||||
|
rollupOptions: {
|
||||||
|
plugins: [
|
||||||
|
// Enable rollup polyfills plugin
|
||||||
|
// used during production bundling
|
||||||
|
rollupNodePolyFill({ crypto: true }),
|
||||||
|
]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue