wokring electron app build + simplified web build

This commit is contained in:
Jan Prochazka
2021-03-21 19:20:42 +01:00
parent 34f2fb2a0a
commit b7b9dde5ae
11 changed files with 80 additions and 34 deletions

2
.gitignore vendored
View File

@@ -12,6 +12,8 @@ node_modules
build build
dist dist
app/packages/web/public
# misc # misc
.DS_Store .DS_Store
.env.local .env.local

View File

@@ -68,10 +68,10 @@
"start": "cross-env ELECTRON_START_URL=http://localhost:5000 electron .", "start": "cross-env ELECTRON_START_URL=http://localhost:5000 electron .",
"start:local": "cross-env electron .", "start:local": "cross-env electron .",
"dist": "electron-builder", "dist": "electron-builder",
"build": "cd ../packages/api && yarn build && cd ../web && yarn build:app && cd ../../app && yarn dist", "build": "cd ../packages/api && yarn build && cd ../web && yarn build && cd ../../app && yarn dist",
"build:local": "cd ../packages/api && yarn build && cd ../web && yarn build:app && cd ../../app && yarn predist", "build:local": "cd ../packages/api && yarn build && cd ../web && yarn build && cd ../../app && yarn predist",
"postinstall": "electron-builder install-app-deps", "postinstall": "electron-builder install-app-deps",
"predist": "copyfiles ../packages/api/dist/* packages && copyfiles \"../packages/web/build/*\" packages && copyfiles \"../packages/web/build/**/*\" packages" "predist": "copyfiles ../packages/api/dist/* packages && copyfiles \"../packages/web/public/*\" packages && copyfiles \"../packages/web/public/**/*\" packages"
}, },
"main": "src/electron.js", "main": "src/electron.js",
"devDependencies": { "devDependencies": {

View File

@@ -169,7 +169,7 @@ function createWindow() {
const startUrl = const startUrl =
process.env.ELECTRON_START_URL || process.env.ELECTRON_START_URL ||
url.format({ url.format({
pathname: path.join(__dirname, '../packages/web/build/index.html'), pathname: path.join(__dirname, '../packages/web/public/index.html'),
protocol: 'file:', protocol: 'file:',
slashes: true, slashes: true,
}); });

View File

@@ -21,7 +21,7 @@
"build:lib": "yarn build:tools && yarn build:sqltree && yarn build:filterparser && yarn build:datalib", "build:lib": "yarn build:tools && yarn build:sqltree && yarn build:filterparser && yarn build:datalib",
"build:app": "cd app && yarn install && yarn build", "build:app": "cd app && yarn install && yarn build",
"build:api": "yarn workspace dbgate-api build", "build:api": "yarn workspace dbgate-api build",
"build:web:docker": "yarn workspace dbgate-web build:docker", "build:web:docker": "yarn workspace dbgate-web build",
"build:app:local": "cd app && yarn build:local", "build:app:local": "cd app && yarn build:local",
"start:app:local": "cd app && yarn start:local", "start:app:local": "cd app && yarn start:local",
"setCurrentVersion": "node setCurrentVersion", "setCurrentVersion": "node setCurrentVersion",
@@ -29,7 +29,7 @@
"fillNativeModules": "node fillNativeModules", "fillNativeModules": "node fillNativeModules",
"fillNativeModulesElectron": "node fillNativeModules --eletron", "fillNativeModulesElectron": "node fillNativeModules --eletron",
"prettier": "prettier --write packages/api/src && prettier --write packages/datalib/src && prettier --write packages/filterparser/src && prettier --write packages/sqltree/src && prettier --write packages/tools/src && prettier --write packages/types && prettier --write packages/web/src && prettier --write app/src", "prettier": "prettier --write packages/api/src && prettier --write packages/datalib/src && prettier --write packages/filterparser/src && prettier --write packages/sqltree/src && prettier --write packages/tools/src && prettier --write packages/types && prettier --write packages/web/src && prettier --write app/src",
"copy:docker:build": "copyfiles packages/api/dist/* docker -f && copyfiles packages/web/build/* docker -u 2 && copyfiles \"packages/web/build/**/*\" docker -u 2", "copy:docker:build": "copyfiles packages/api/dist/* docker -f && copyfiles packages/web/public/* docker -u 2 && copyfiles \"packages/web/public/**/*\" docker -u 2",
"prepare:docker": "yarn build:web:docker && yarn build:api && yarn copy:docker:build", "prepare:docker": "yarn build:web:docker && yarn build:api && yarn copy:docker:build",
"prepare": "yarn build:lib", "prepare": "yarn build:lib",
"start": "concurrently --kill-others-on-fail \"yarn start:api\" \"yarn start:web\"", "start": "concurrently --kill-others-on-fail \"yarn start:api\" \"yarn start:web\"",

View File

@@ -2,8 +2,8 @@
"name": "dbgate-web", "name": "dbgate-web",
"version": "1.0.0", "version": "1.0.0",
"scripts": { "scripts": {
"build": "rollup -c", "build": "cross-env API_URL=ORIGIN rollup -c",
"dev": "rollup -c -w", "dev": "cross-env API_URL=http://localhost:3000 rollup -c -w",
"start": "sirv public", "start": "sirv public",
"validate": "svelte-check" "validate": "svelte-check"
}, },
@@ -11,10 +11,12 @@
"@ant-design/colors": "^5.0.0", "@ant-design/colors": "^5.0.0",
"@rollup/plugin-commonjs": "^17.0.0", "@rollup/plugin-commonjs": "^17.0.0",
"@rollup/plugin-node-resolve": "^11.0.0", "@rollup/plugin-node-resolve": "^11.0.0",
"@rollup/plugin-replace": "^2.4.1",
"@rollup/plugin-typescript": "^6.0.0", "@rollup/plugin-typescript": "^6.0.0",
"@tsconfig/svelte": "^1.0.0", "@tsconfig/svelte": "^1.0.0",
"ace-builds": "^1.4.8", "ace-builds": "^1.4.8",
"chart.js": "^2.9.4", "chart.js": "^2.9.4",
"cross-env": "^7.0.3",
"dbgate-datalib": "^3.9.5", "dbgate-datalib": "^3.9.5",
"dbgate-sqltree": "^3.9.5", "dbgate-sqltree": "^3.9.5",
"dbgate-tools": "^3.9.5", "dbgate-tools": "^3.9.5",

View File

@@ -10,17 +10,17 @@
<meta name="description" <meta name="description"
content="DbGate - web based opensource database administration tool for MS SQL, MySQL, Postgre SQL" /> content="DbGate - web based opensource database administration tool for MS SQL, MySQL, Postgre SQL" />
<link rel='icon' type='image/png' href='/favicon.ico'> <link rel='icon' type='image/png' href='favicon.ico'>
<link rel="manifest" href="/manifest.json" /> <link rel="manifest" href="manifest.json" />
<link rel='stylesheet' href='/global.css'> <link rel='stylesheet' href='global.css'>
<link rel='stylesheet' href='/dimensions.css'> <link rel='stylesheet' href='dimensions.css'>
<link rel='stylesheet' href='/bulma.css'> <link rel='stylesheet' href='bulma.css'>
<link rel='stylesheet' href='/icon-colors.css'> <link rel='stylesheet' href='icon-colors.css'>
<link rel='stylesheet' href='/build/bundle.css'> <link rel='stylesheet' href='build/bundle.css'>
<link rel='stylesheet' href='/build/fonts/materialdesignicons.css'> <link rel='stylesheet' href='build/fonts/materialdesignicons.css'>
<script defer src='/build/bundle.js'></script> <script defer src='build/bundle.js'></script>
</head> </head>
<body> <body>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.1" width="116" height="116" id="svg2">
<defs id="defs4"/>
<metadata id="metadata7">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<text x="10.710938" y="111.5" id="text2996" xml:space="preserve" style="font-size:144px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"><tspan x="10.710938" y="111.5" id="tspan2998" style="font-size:150px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial Bold">?</tspan></text>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -6,6 +6,7 @@ import copy from 'rollup-plugin-copy';
import { terser } from 'rollup-plugin-terser'; import { terser } from 'rollup-plugin-terser';
import sveltePreprocess from 'svelte-preprocess'; import sveltePreprocess from 'svelte-preprocess';
import typescript from '@rollup/plugin-typescript'; import typescript from '@rollup/plugin-typescript';
import replace from '@rollup/plugin-replace';
import css from 'rollup-plugin-css-only'; import css from 'rollup-plugin-css-only';
const production = !process.env.ROLLUP_WATCH; const production = !process.env.ROLLUP_WATCH;
@@ -43,16 +44,18 @@ export default {
copy({ copy({
targets: [ targets: [
{ {
src: src: '../../node_modules/@mdi/font/css/materialdesignicons.css',
'../../node_modules/@mdi/font/css/materialdesignicons.css',
dest: 'public/build/fonts/', dest: 'public/build/fonts/',
}, },
{ {
src: src: '../../node_modules/@mdi/font/fonts/*',
'../../node_modules/@mdi/font/fonts/*', dest: 'public/build/fonts/',
dest: 'public/build/fonts/', },
}, ],
], }),
replace({
'process.env.API_URL': JSON.stringify(process.env.API_URL),
}), }),
svelte({ svelte({

View File

@@ -12,8 +12,7 @@ export function extractPluginIcon(packageManifest) {
return `https://raw.githubusercontent.com/${match[1]}/${match[2]}/master/icon.svg`; return `https://raw.githubusercontent.com/${match[1]}/${match[2]}/master/icon.svg`;
} }
} }
// eslint-disable-next-line no-undef return 'unknown.svg';
return `${process.env.PUBLIC_URL}/unknown.svg`;
} }
export function extractPluginAuthor(packageManifest) { export function extractPluginAuthor(packageManifest) {

View File

@@ -1,3 +1,8 @@
let apiUrl = null;
try {
apiUrl = process.env.API_URL;
} catch {}
export default function resolveApi() { export default function resolveApi() {
if (window['require']) { if (window['require']) {
const electron = window['require']('electron'); const electron = window['require']('electron');
@@ -10,12 +15,8 @@ export default function resolveApi() {
} }
} }
// // eslint-disable-next-line if (apiUrl) {
// const apiUrl = process.env.REACT_APP_API_URL; return apiUrl;
// if (apiUrl) { }
// if (apiUrl == 'ORIGIN') return window.location.origin; return window.location.origin;
// return apiUrl;
// }
return 'http://localhost:3000';
} }

View File

@@ -386,6 +386,14 @@
is-module "^1.0.0" is-module "^1.0.0"
resolve "^1.19.0" resolve "^1.19.0"
"@rollup/plugin-replace@^2.4.1":
version "2.4.1"
resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.1.tgz#c411b5ab72809fb1bfc8b487d8d02eef661460d3"
integrity sha512-XwC1oK5rrtRJ0tn1ioLHS6OV5JTluJF7QE1J/q1hN3bquwjnVxjtMyY9iCnoyH9DQbf92CxajB3o98wZbP3oAQ==
dependencies:
"@rollup/pluginutils" "^3.1.0"
magic-string "^0.25.7"
"@rollup/plugin-typescript@^6.0.0": "@rollup/plugin-typescript@^6.0.0":
version "6.1.0" version "6.1.0"
resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-6.1.0.tgz#289e7f0ea12fd659bd13ad59dda73b9055538b83" resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-6.1.0.tgz#289e7f0ea12fd659bd13ad59dda73b9055538b83"
@@ -1955,6 +1963,13 @@ cross-env@^6.0.3:
dependencies: dependencies:
cross-spawn "^7.0.0" cross-spawn "^7.0.0"
cross-env@^7.0.3:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf"
integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==
dependencies:
cross-spawn "^7.0.1"
cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5:
version "6.0.5" version "6.0.5"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
@@ -1984,6 +1999,15 @@ cross-spawn@^7.0.0:
shebang-command "^2.0.0" shebang-command "^2.0.0"
which "^2.0.1" which "^2.0.1"
cross-spawn@^7.0.1:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
dependencies:
path-key "^3.1.0"
shebang-command "^2.0.0"
which "^2.0.1"
crypto-browserify@^3.11.0: crypto-browserify@^3.11.0:
version "3.12.0" version "3.12.0"
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"