Fix issue with polyfilling node globals
This commit is contained in:
parent
44ad38fdf8
commit
a2bd824a1d
|
@ -1,138 +0,0 @@
|
||||||
import alias from "@rollup/plugin-alias"
|
|
||||||
import svelte from "rollup-plugin-svelte"
|
|
||||||
import resolve from "rollup-plugin-node-resolve"
|
|
||||||
import commonjs from "@rollup/plugin-commonjs"
|
|
||||||
import url from "rollup-plugin-url"
|
|
||||||
import livereload from "rollup-plugin-livereload"
|
|
||||||
import { terser } from "rollup-plugin-terser"
|
|
||||||
import builtins from "rollup-plugin-node-builtins"
|
|
||||||
import nodeglobals from "rollup-plugin-node-globals"
|
|
||||||
import copy from "rollup-plugin-copy"
|
|
||||||
import css from "rollup-plugin-css-only"
|
|
||||||
import replace from "rollup-plugin-replace"
|
|
||||||
import json from "@rollup/plugin-json"
|
|
||||||
import html from "rollup-plugin-html"
|
|
||||||
|
|
||||||
import path from "path"
|
|
||||||
|
|
||||||
const production = !process.env.ROLLUP_WATCH
|
|
||||||
const outputpath = "../server/builder"
|
|
||||||
const coreExternal = [
|
|
||||||
"lodash",
|
|
||||||
"lodash/fp",
|
|
||||||
"date-fns",
|
|
||||||
"lunr",
|
|
||||||
"safe-buffer",
|
|
||||||
"shortid",
|
|
||||||
"@nx-js/compiler-util",
|
|
||||||
]
|
|
||||||
|
|
||||||
const customResolver = resolve({
|
|
||||||
extensions: [
|
|
||||||
".mjs",
|
|
||||||
".js",
|
|
||||||
".jsx",
|
|
||||||
".json",
|
|
||||||
".sass",
|
|
||||||
".scss",
|
|
||||||
".svelte",
|
|
||||||
".css",
|
|
||||||
],
|
|
||||||
})
|
|
||||||
const projectRootDir = path.resolve(__dirname)
|
|
||||||
|
|
||||||
export default {
|
|
||||||
input: "src/main.js",
|
|
||||||
output: {
|
|
||||||
sourcemap: true,
|
|
||||||
format: "iife",
|
|
||||||
name: "app",
|
|
||||||
file: `${outputpath}/bundle.js`,
|
|
||||||
},
|
|
||||||
plugins: [
|
|
||||||
alias({
|
|
||||||
entries: [
|
|
||||||
{
|
|
||||||
find: "components",
|
|
||||||
replacement: path.resolve(projectRootDir, "src/components"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
find: "builderStore",
|
|
||||||
replacement: path.resolve(projectRootDir, "src/builderStore"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
find: "constants",
|
|
||||||
replacement: path.resolve(projectRootDir, "src/constants"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
find: "analytics",
|
|
||||||
replacement: path.resolve(projectRootDir, "src/analytics"),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
customResolver,
|
|
||||||
}),
|
|
||||||
copy({
|
|
||||||
targets: [
|
|
||||||
{ src: "src/index.html", dest: outputpath },
|
|
||||||
{ src: "src/favicon.png", dest: outputpath },
|
|
||||||
{ src: "assets", dest: outputpath },
|
|
||||||
{
|
|
||||||
src: "../bbui/dist/bbui.css",
|
|
||||||
dest: outputpath,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
src: "node_modules/remixicon/fonts/*",
|
|
||||||
dest: outputpath,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
}),
|
|
||||||
|
|
||||||
replace({
|
|
||||||
"process.env.NODE_ENV": JSON.stringify(
|
|
||||||
production ? "production" : "development"
|
|
||||||
),
|
|
||||||
"process.env.POSTHOG_TOKEN": JSON.stringify(process.env.POSTHOG_TOKEN),
|
|
||||||
"process.env.POSTHOG_URL": JSON.stringify(process.env.POSTHOG_URL),
|
|
||||||
"process.env.SENTRY_DSN": JSON.stringify(process.env.SENTRY_DSN),
|
|
||||||
}),
|
|
||||||
|
|
||||||
svelte(),
|
|
||||||
|
|
||||||
// Export all CSS imported in the JS to it's own bundle.
|
|
||||||
// This is exclusively external stylesheets and vendor stylesheets.
|
|
||||||
// Svelte CSS is handled by the svelte plugin
|
|
||||||
css({
|
|
||||||
output: `external.css`,
|
|
||||||
}),
|
|
||||||
|
|
||||||
resolve({
|
|
||||||
browser: true,
|
|
||||||
dedupe: importee => {
|
|
||||||
return (
|
|
||||||
importee === "svelte" ||
|
|
||||||
importee.startsWith("svelte/") ||
|
|
||||||
coreExternal.includes(importee)
|
|
||||||
)
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
commonjs(),
|
|
||||||
url({
|
|
||||||
limit: 0,
|
|
||||||
include: ["**/*.woff2", "**/*.png"],
|
|
||||||
fileName: "[dirname][name][extname]",
|
|
||||||
emitFiles: true,
|
|
||||||
}),
|
|
||||||
builtins(),
|
|
||||||
nodeglobals(),
|
|
||||||
|
|
||||||
// Watch the `dist` directory and refresh the
|
|
||||||
// browser on changes when not in production
|
|
||||||
!production && livereload({ watch: outputpath, delay: 500, port: 35730 }),
|
|
||||||
|
|
||||||
// If we're building for production (npm run build
|
|
||||||
// instead of npm run dev), minify
|
|
||||||
production && terser(),
|
|
||||||
json(),
|
|
||||||
html(),
|
|
||||||
],
|
|
||||||
}
|
|
|
@ -1,46 +0,0 @@
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<link rel="stylesheet" href="https://rsms.me/inter/inter.css">
|
|
||||||
<link href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css" rel="stylesheet">
|
|
||||||
<style>
|
|
||||||
body, html {
|
|
||||||
height: 100% !important;
|
|
||||||
font-family: Inter, sans-serif !important;
|
|
||||||
margin: 0 !important;
|
|
||||||
}
|
|
||||||
*, *:before, *:after {
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<script src='/assets/budibase-client.js'></script>
|
|
||||||
<script>
|
|
||||||
function receiveMessage(event) {
|
|
||||||
if (!event.data) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Extract data from message
|
|
||||||
const { selectedComponentId, layout, screen, previewType, appId } = JSON.parse(event.data)
|
|
||||||
|
|
||||||
// Set some flags so the app knows we're in the builder
|
|
||||||
window["##BUDIBASE_IN_BUILDER##"] = true
|
|
||||||
window["##BUDIBASE_APP_ID##"] = appId
|
|
||||||
window["##BUDIBASE_PREVIEW_LAYOUT##"] = layout
|
|
||||||
window["##BUDIBASE_PREVIEW_SCREEN##"] = screen
|
|
||||||
window["##BUDIBASE_SELECTED_COMPONENT_ID##"] = selectedComponentId
|
|
||||||
window["##BUDIBASE_PREVIEW_ID##"] = Math.random()
|
|
||||||
window["##BUDIBASE_PREVIEW_TYPE##"] = previewType
|
|
||||||
|
|
||||||
// Initialise app
|
|
||||||
if (window.loadBudibase) {
|
|
||||||
loadBudibase()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener("message", receiveMessage)
|
|
||||||
window.dispatchEvent(new Event("bb-ready"))
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -35,7 +35,6 @@
|
||||||
"rollup-plugin-node-builtins": "^2.1.2",
|
"rollup-plugin-node-builtins": "^2.1.2",
|
||||||
"rollup-plugin-node-globals": "^1.4.0",
|
"rollup-plugin-node-globals": "^1.4.0",
|
||||||
"rollup-plugin-node-resolve": "^5.2.0",
|
"rollup-plugin-node-resolve": "^5.2.0",
|
||||||
"rollup-plugin-polyfill-node": "^0.6.2",
|
|
||||||
"rollup-plugin-terser": "^7.0.2",
|
"rollup-plugin-terser": "^7.0.2",
|
||||||
"typescript": "^4.1.3"
|
"typescript": "^4.1.3"
|
||||||
},
|
},
|
||||||
|
|
|
@ -2,7 +2,8 @@ import commonjs from "@rollup/plugin-commonjs"
|
||||||
import resolve from "rollup-plugin-node-resolve"
|
import resolve from "rollup-plugin-node-resolve"
|
||||||
import json from "@rollup/plugin-json"
|
import json from "@rollup/plugin-json"
|
||||||
import { terser } from "rollup-plugin-terser"
|
import { terser } from "rollup-plugin-terser"
|
||||||
import nodePolyfills from "rollup-plugin-polyfill-node"
|
import builtins from "rollup-plugin-node-builtins"
|
||||||
|
import globals from "rollup-plugin-node-globals"
|
||||||
|
|
||||||
const production = !process.env.ROLLUP_WATCH
|
const production = !process.env.ROLLUP_WATCH
|
||||||
|
|
||||||
|
@ -12,7 +13,8 @@ const plugins = [
|
||||||
preferBuiltins: true,
|
preferBuiltins: true,
|
||||||
}),
|
}),
|
||||||
commonjs(),
|
commonjs(),
|
||||||
nodePolyfills(),
|
builtins(),
|
||||||
|
globals(),
|
||||||
production && terser(),
|
production && terser(),
|
||||||
json(),
|
json(),
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue