Como criar um 앱 Electron usando Vite
17774 단어 vitetutorialelectronjavascript
This article is also in .
Então você quer disponibilizar seu novo aplicativo em Vite usando Electron , mas não quer usar o código pronto dos outros. Vamos entender como funciona e fazer o nosso próprio.
크리아 음 앱 Vite
Nós vamos utilizar a estrutura de arquivos do Vite como base do nosso projeto. Inicie com o comando:
$ npm create vite@latest
Depois siga as instruções no terminal. 예를 들어 사전 설정
react-ts
을 활용하십시오. Vuejs와 provavelmente todos outros에서 기능을 수행할 수 있습니다.Electron의 중독자
Agora adicionamos o Electron ao nosso projeto:
$ npm i -D electron@latest
Depois criamos um diretório
electron
na raíz, e dois arquivos main.js
e preload.js
. Nossa estrutura de arquivos ficou assim:project-root/
├── electron/
│ ├── main.js
│ └── preload.js
├── src/
│ └── ...
├── index.html
├── package.json
├── vite.config.ts
└── ...
Electron에 대한 질문
Electron precisa de um arquivo de entrada para funcionar, vamos editar o
electron/main.js
:const { app, BrowserWindow, shell } = require('electron')
const { join } = require('path')
if (!app.requestSingleInstanceLock()) {
app.quit()
process.exit(0)
}
let win = null
async function createWindow () {
win = new BrowserWindow({
title: 'Main window',
width: 1024,
height: 768,
webPreferences: {
preload: join(__dirname, '../electron/preload.js'),
nodeIntegration: true
}
})
if (app.isPackaged) {
// win.removeMenu()
win.loadFile(join(__dirname, '../dist/index.html'))
} else {
// Vite's dev server
win.loadURL('http://localhost:3000')
win.webContents.openDevTools()
}
app.whenReady().then(createWindow)
app.on('window-all-closed', () => {
win = null
if (process.platform !== 'darwin') app.quit()
})
app.on('second-instance', () => {
if (win) {
// Focus on the main window if the user tried to open another
if (win.isMinimized()) win.restore()
win.focus()
}
})
app.on('activate', () => {
const allWindows = BrowserWindow.getAllWindows()
if (allWindows.length) {
allWindows[0].focus()
} else {
createWindow()
}
})
Arquivo
preload.js
는 튜토리얼을 참조하십시오. Mas você provavelmente vai utilizar num aplicativo real.Adicione-o ao
package.json
: ...
+ "main": "electron/main.js",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"preview": "vite preview",
+ "electron:dev": "electron ."
},
...
테스트를 실행하려면 dev 서버에서 Vite num 터미널을 실행하고 Electron을 실행하십시오.
# Primeiro terminal
$ npm run dev
# Segundo terminal
$ npm run electron:dev
Completamente desacoplados, o HMR funciona normalmente já que só estamos abrindo o dev server do Vite no Electron을 수리하십시오.
Mas eu quero executar de um único terminal/comando!
Para isso podemos criar um script customizado. Crie um novo arquivo
scripts/dev.mjs
com:import { spawn } from 'child_process'
import { createServer } from 'vite'
import electron from 'electron'
const server = await createServer({ configFile: 'vite.config.ts' })
spawn(electron, ['.'], { stdio: 'inherit' }).once('exit', process.exit)
await server.listen()
스크립트 번호 확인
package.json
:...
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"preview": "vite preview",
- "electron:dev": "electron ."
+ "electron:dev": "node scripts/dev.mjs"
},
...
Agora você pode abrir ambos dev server num único comando
npm run electron:dev
.Live Reload Nem TypeScript no
electron/main.js
에 대한 예를 참고하십시오. Para isso funcionar você pode implementar algo parecido com isso . 최소한의 의견은 필요한 경우에만 필요합니다.Gerando o executável
Nosso dev server está funcionando bem. 앱을 실행할 수 있는 장소는 없습니다.
Vamos usar o electron-builder . Adicione ao projeto:
$ npm i -D electron-builder
E precisamos de uma arquivo de configuração, cry o
electron-builder.yaml
na raíz:# https://www.electron.build/configuration/configuration
appId: your.app.id
asar: true
directories:
output: release/${version}
files:
- dist
- electron
mac:
artifactName: "${productName}_${version}.${ext}"
target:
- dmg
win:
target:
- target: nsis
arch:
- x64
artifactName: "${productName}_${version}.${ext}"
nsis:
oneClick: false
perMachine: false
allowToChangeInstallationDirectory: true
deleteAppDataOnUninstall: false
Adicione a propriedade
base
ao arquivo de configuração do Vite vite.config.ts
:import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
// https://vitejs.dev/config/
export default defineConfig({
base: './',
plugins: [react()]
})
추가 자산에 접두사
./
가 있고 Electron 프로토콜file://
의 기능이 필요합니다.Agora adicione o script ao
package.json
:...
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"preview": "vite preview",
"electron:dev": "node scripts/dev.mjs",
+ "electron:build": "npm run build && electron-builder"
},
...
Você pode ver, iremos primeiramente executar a build do Vite, e depois do Electron.
Vite estará localizada no diretório
dist
빌드, Electron estará localizada no diretório 빌드release
. 아디치오네 암보스 아오.gitignore
.comocomando
npm run electron:build
.Eeeee é isso! Você agora tem seu 앱 Electron usando Vite!
튜토리얼 완료 코드: https://github.com/rafaelpimpa/vite-electron
참조
Reference
이 문제에 관하여(Como criar um 앱 Electron usando Vite), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rafaelpimpa/como-criar-um-app-electron-usando-vite-52d6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)