일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 자스민
- data structure
- queue
- 호키스
- hokidoki
- Hitit
- hokeys
- 개발
- 개발자
- javascript
- 계명대 이종호
- 자바스크립트
- 리액트
- jest
- TDD
- 스벨트
- 자료구조
- 자바스크립트 자료구조
- 비동기
- HTML
- 호키도키
- 스위프트
- Svelte
- SWIFT
- IOS
- 리액트 예제
- react
- 이종호
- 힛잇
- 계명대
Archives
- Today
- Total
Dog foot print
Electron with svelte 초기 세팅하기 본문
Electron with svelte 초기 세팅하기
requirement
- 일렉트론 윈도우에서는 svelte를 사용 할 수 있어야 한다.
- 유용한 플러그인 및 모듈을 설치하여, 깔끔한 폴더 구조를 만들어야 한다.
- svelte와 일렉트론에서 typescript를 사용 할 수 있어야 한다.
- svelte에서는 scss를 사용 할 수 있어야 한다.
- svelte에서 최신 문법을 사용 할 수 있어야 한다.
- svelte에서는 css초기화가 되어야 한다.
- svelte에서는 css 브라우저 접두사가 붙어야한다.
환경
OS : mac big-sur 11.3
NODE : 14.16.1
NPM : 6.14.12
YARN : 1.22.10
svelte 사용하기
SVELTE TEMPLATE설치
Note : npm , node , yarn 사전 설치
$ npx degit sveltejs/template timer
$ cd timer yarn
폴더 구조 및 rollup 수정
일렉트론과 더불어 편리하게 사용하도록 render_src
폴더를 생성하여, src
폴더에 있는 문서를 복사, 붙여넣기한다.
이에 맞추어, rollup.config.js
도 변경
export default {
input: 'render_src/main.js',
output: {
sourcemap: true,
format: 'iife',
name: 'app',
file: 'public/build/bundle.js'
},
...
멀쩡히 svelte가 번들링 되어 실행되나 확인 .
$ yarn dev
electron 사용하기
일렉트론 설치
electron : 데스크탑 Application을 사용 할 수 있게 도와주는 핵심 모듈 .
$ yarn add electron
/main_src에 main.js 정의
Note : 에 main_src폴더를 생성해야함
const { app, BrowserWindow } = require('electron')
function createWindow() {
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
})
mainWindow.loadFile('../public/index.html')
}
app.whenReady().then(() => {
createWindow()
app.on('activate', function() {
if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
})
app.on('window-all-closed', function() {
if (process.platform !== 'darwin') app.quit()
})
번들링 이후 electron 실행 하도록 설정 파일 변경
번들링 이후, electron을 실행하기 위해서는 먼저 package.json
과 rollup.config.js
의 serve
메서드를 수정해야 한다.
./pacakge.json
"scripts": {
"build": "rollup -c",
"dev": "rollup -c -w",
"start": "sirv public --no-clear",
"electron-start": "electron ./main_src/main.js"
},
./rollup.config.json
function execute() {
let __app;
function toExit() {
if (__app) app.kill(0);
}
return {
writeBundle() {
if (__app) return;
__app = require('child_process').spawn('yarn', ['electron-start'], {
stdio: ['ignore', 'inherit', 'inherit'],
shell: true
});
process.on('SIGTERM', toExit);
process.on('exit', toExit);
}
};
}
export default {
input: 'render_src/main.js',
output: {
sourcemap: true,
format: 'iife',
name: 'app',
file: 'public/build/bundle.js'
},
plugins: [
svelte({
compilerOptions: {
dev: !production
}
}),
css({ output: 'bundle.css' }),
resolve({
browser: true,
dedupe: ['svelte']
}),
commonjs(),
//
!production && execute(),
//
!production && livereload('public'),
//
production && terser()
],
watch: {
clearScreen: false
}
};
Note :
serve
라는 메서드 명과 내부 변수인 server
는 실행되는 성격에 맞지 않으니, excute
와 __app
으로 변경하도록 하자.
index.html 유효 경로 설정 하기.
현재 index.html에 존재하는 css와 script의 src
, href
는 폴더 경로를 나타내고 있지 않으므로, 이를 구조에 맞게 변경한다.
./public/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset='utf-8'>
<meta name='viewport' content='width=device-width,initial-scale=1'>
<title>Svelte app</title>
<link rel='stylesheet' href='./global.css'>
<link rel='stylesheet' href='./build/bundle.css'>
<script defer src='./build/bundle.js'></script>
</head>
<body>
</body>
</html>
실행
$ yarn dev
일렉트론 윈도우에서는 svelte를 사용 할 수 있어야 한다.
반응형
'electron' 카테고리의 다른 글
Electron with svelte 초기 세팅하기 [2] (0) | 2021.06.17 |
---|
Comments