forked from tsai/budibase
4 changed files with 4 additions and 187 deletions
@ -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> |
|||
Loading…
Reference in new issue