update new config to can dev as web and application desktop at same time
This commit is contained in:
parent
4032baa8ab
commit
edcccaaab9
10 changed files with 6831 additions and 63 deletions
2
client-electron/.gitignore
vendored
2
client-electron/.gitignore
vendored
|
|
@ -11,6 +11,8 @@ node_modules
|
|||
dist
|
||||
dist-ssr
|
||||
dist-electron
|
||||
dist-renderer
|
||||
dist-web
|
||||
release
|
||||
*.local
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
directories: {
|
||||
output: 'release/${version}'
|
||||
},
|
||||
files: ['dist', 'dist-electron'],
|
||||
files: ['dist-renderer', 'dist-electron'],
|
||||
mac: {
|
||||
target: ['dmg'],
|
||||
artifactName: '${productName}-Mac-${version}-Installer.${ext}'
|
||||
|
|
|
|||
1
client-electron/electron/electron-env.d.ts
vendored
1
client-electron/electron/electron-env.d.ts
vendored
|
|
@ -1,3 +1,4 @@
|
|||
/* eslint-disable @typescript-eslint/consistent-type-imports */
|
||||
/// <reference types="vite-plugin-electron/electron-env" />
|
||||
|
||||
declare namespace NodeJS {
|
||||
|
|
|
|||
6817
client-electron/package-lock.json
generated
6817
client-electron/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -3,24 +3,30 @@
|
|||
"private": true,
|
||||
"version": "0.0.1",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "tsc && vite build && electron-builder",
|
||||
"dev": "concurrently \"npm run dev:electron\" \"npm run dev:web\"",
|
||||
"dev:electron": "vite -c vite.config.electron.ts",
|
||||
"dev:web": "vite -c vite.config.web.ts",
|
||||
"build": "concurrently \"npm run build:electron\" \"npm run build:web\"",
|
||||
"build:electron": "tsc && vite build -c vite.config.electron.ts --mode=production && electron-builder",
|
||||
"build:web": "tsc && vite build -c vite.config.web.ts --mode=production",
|
||||
"lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"dotenv": "^16.3.1",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-router-dom": "^6.21.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@electron-forge/cli": "^7.2.0",
|
||||
"@types/react": "^18.2.21",
|
||||
"@types/react-dom": "^18.2.7",
|
||||
"@typescript-eslint/eslint-plugin": "^6.18.1",
|
||||
"@typescript-eslint/parser": "^6.18.1",
|
||||
"@vitejs/plugin-react": "^4.0.4",
|
||||
"autoprefixer": "^10.4.16",
|
||||
"concurrently": "^8.2.2",
|
||||
"cross-env": "^7.0.3",
|
||||
"daisyui": "^4.6.0",
|
||||
"electron": "^26.1.0",
|
||||
"electron-builder": "^24.6.4",
|
||||
|
|
|
|||
|
|
@ -9,6 +9,9 @@ ReactDOM.createRoot(document.getElementById('root')!).render(
|
|||
</React.StrictMode>
|
||||
)
|
||||
|
||||
console.log(import.meta.env.MODE)
|
||||
|
||||
if (import.meta.env.MODE === 'electron') {
|
||||
// Remove Preload scripts loading
|
||||
postMessage({ payload: 'removeLoading' }, '*')
|
||||
|
||||
|
|
@ -21,3 +24,4 @@ window.ipcRenderer.on('main-process-message', (_event, message) => {
|
|||
window.ipcRenderer.on('deeplink', (_event, url) => {
|
||||
console.log(url)
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ const Home: React.FC = () => {
|
|||
const loginWithGoogle = () => {
|
||||
// if is web mode then use window.open
|
||||
// if is electron mode then use ipcRenderer.send to use deep link method
|
||||
if (import.meta.env.TAOBIN_RECIPE_MANAGER_MODE === 'web') {
|
||||
if (import.meta.env.MODE === 'web') {
|
||||
// open new window and listen to message from window.opener
|
||||
const newWindow = window.open(
|
||||
import.meta.env.TAOBIN_RECIPE_MANAGER_SERVER_URL,
|
||||
|
|
@ -31,7 +31,7 @@ const Home: React.FC = () => {
|
|||
|
||||
return (
|
||||
<div>
|
||||
<h1>This is Home Page!!!</h1>
|
||||
<h1>This is Home Page!!!!!!!</h1>
|
||||
<button
|
||||
onClick={loginWithGoogle}
|
||||
className="bg-white px-4 py-2 border flex gap-2 border-slate-200 rounded-lg text-slate-700 hover:border-slate-400 hover:text-slate-900 hover:shadow transition duration-150"
|
||||
|
|
@ -40,7 +40,7 @@ const Home: React.FC = () => {
|
|||
className="w-6 h-6"
|
||||
src={googleLogo}
|
||||
alt="google logo"
|
||||
loading="lazy"
|
||||
loading="eager"
|
||||
/>
|
||||
<span>Login with @forth.co.th Google account</span>
|
||||
</button>
|
||||
|
|
|
|||
|
|
@ -6,5 +6,8 @@
|
|||
"moduleResolution": "bundler",
|
||||
"allowSyntheticDefaultImports": true
|
||||
},
|
||||
"include": ["vite.config.ts"]
|
||||
"include": [
|
||||
"vite.config.electron.ts",
|
||||
"vite.config.web.ts"
|
||||
]
|
||||
}
|
||||
|
|
@ -5,6 +5,7 @@ import react from '@vitejs/plugin-react'
|
|||
|
||||
// https://vitejs.dev/config/
|
||||
export default defineConfig({
|
||||
mode: 'electron',
|
||||
envPrefix: 'TAOBIN_RECIPE_MANAGER_',
|
||||
plugins: [
|
||||
react(),
|
||||
|
|
@ -22,5 +23,8 @@ export default defineConfig({
|
|||
// See 👉 https://github.com/electron-vite/vite-plugin-electron-renderer
|
||||
renderer: {}
|
||||
})
|
||||
]
|
||||
],
|
||||
build: {
|
||||
outDir: 'dist-renderer'
|
||||
}
|
||||
})
|
||||
15
client-electron/vite.config.web.ts
Normal file
15
client-electron/vite.config.web.ts
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
import { defineConfig } from 'vite'
|
||||
import react from '@vitejs/plugin-react'
|
||||
|
||||
// https://vitejs.dev/config/
|
||||
export default defineConfig({
|
||||
mode: 'web',
|
||||
envPrefix: 'TAOBIN_RECIPE_MANAGER_',
|
||||
plugins: [react()],
|
||||
build: {
|
||||
outDir: 'dist-web'
|
||||
},
|
||||
server: {
|
||||
port: 4200
|
||||
}
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue