electron-nuxt를 사용하여 데스크톱 애플리케이션 만들기
10608 단어 Electronnuxt.jselectron-nuxt
Nuxt.js에서 조금 떨어져 버립니다만 이번은, 전부터 신경이 쓰이고 있던 electron-nuxt를 사용해 데스크탑 어플리케이션을 만들어 보았던 기사를 쓰려고 생각합니다.
이번 기사에서는 아키텍처의 이야기 등, 세세한 부분에 관해서는 하지 않을 예정이므로 양해 바랍니다.
프로젝트 만들기
vue가 들어 있지 않은 분은 먼저 vue-cli를 install하는 곳에서 시작합니다.
npm install -g vue-cli
or
yarn global add vue-cli
그런 다음 프로젝트를 만듭니다.
프로젝트 작성은 기본 Nuxt.js 프로젝트 작성과 크게 다르지 않습니다.
vue init michalzaq12/electron-nuxt
? Application Name (example-electron-nuxt)
? Application Id (com.example.yourapp)
? Application Version (0.0.1)
? Project description (An electron-nuxt project)
? Author (Kazuhiro Ebara <***@gmail.com>)
? Select which ui-components framework install (Use arrow keys)
❯ none
Vuetify (https://vuetifyjs.com)
Buefy (https://buefy.org)
Element (https://element.eleme.io)
? Select which css pre-processor install (Use arrow keys)
❯ none
Sass (scss)
LESS
Stylus
? Select which icon set install (Use arrow keys)
❯ none
Material Design Icon (https://materialdesignicons.com/)
Font Awesome 5 (https://fontawesome.com/icons)
? Use typescript? (y/N)
? Use linting with ESLint? (y/N)
? Set up unit testing with vue-test-utils + AVA? (y/N)
? Set up end-to-end testing with Spectron + AVA? (y/N)
vue-cli · Generated "example-electron-nuxt".
vue-cli · All set. Welcome to your new electron-nuxt project!
Make sure to check out the documentation at
https://github.com/michalzaq12/electron-nuxt#documentation
To get started:
cd example-electron-nuxt
npm install
npm run dev
프로젝트 작성은 이상으로 완료됩니다.
프로젝트를 시작하면 다음과 같은 데스크톱 응용 프로그램이 시작됩니다.
프로젝트 작성은 이상입니다.
파일 트리
구조 자체는 간단합니다.
Nuxt.js와 마찬가지로 renderer 아래에 있는 page 디렉토리에서 page를 만들거나 components 아래에서 component를 관리하는 형태가 됩니다.
$ tree -L 3 -I node_modules
.
├── README.md
├── ava.config.js
├── build
│ └── icons
│ ├── 128x128.png
│ ├── 16x16.png
│ ├── 24x24.png
│ ├── 256x256.png
│ ├── 32x32.png
│ ├── 48x48.png
│ ├── 64x64.png
│ ├── 96x96.png
│ ├── icon.icns
│ └── win-icon.ico
├── builder.config.js
├── dist
│ └── main
│ └── index.js
├── package.json
├── src
│ ├── main
│ │ ├── BrowserWinHandler.js
│ │ ├── index.dev.js
│ │ ├── index.js
│ │ ├── mainWindow.js
│ │ └── tsconfig.json
│ ├── renderer
│ │ ├── assets
│ │ ├── components
│ │ ├── index.d.ts
│ │ ├── layouts
│ │ ├── nuxt.config.js
│ │ ├── pages
│ │ ├── plugins
│ │ ├── store
│ │ └── tsconfig.json
│ └── resources
│ ├── electron-nuxt.png
│ └── external-file.txt
├── test
│ ├── e2e
│ │ ├── ava.config.js
│ │ ├── helpers.js
│ │ ├── nuxt-spectron.d.ts
│ │ ├── setup.js
│ │ └── specs
│ └── unit
│ ├── alias.js
│ ├── ava.config.js
│ ├── setup.js
│ └── specs
└── yarn.lock
페이지 만들기
Nuxt.js와 마찬가지로 renderer 아래의 페이지에 파일을 만듭니다.
이번에는 시험에 hoge라는 파일을 만들었습니다.
$ tree -L 3 src/renderer/pages
src/renderer/pages
├── hoge.vue
└── index.vue
페이지 아래에 파일을 만들면 router.js의 routes 부분에 새 경로가 추가됩니다.
routes.js
export const routerOptions = {
mode: 'hash',
base: decodeURI('/'),
linkActiveClass: 'nuxt-link-active',
linkExactActiveClass: 'nuxt-link-exact-active',
scrollBehavior,
routes: [{
path: "/hoge",
component: _16245e3e,
name: "hoge"
}, {
path: "/",
component: _3a6ef246,
name: "index"
}],
fallback: false
}
routing도 Nuxt.js와 마찬가지로 자동으로 해줍니다.
page의 전이도 Nuxt.js와 같이,
nuxt-link
를 사용하면 할 수 있습니다.창 크기 변경
윈도우 사이즈의 변경은 main 디렉토리내에 있는
mainWindow.js
파일의 new BrowserWinHandler
부분의 값을 만지면 윈도우 사이즈를 변경할 수 있습니다.mainWindow.js
import path from 'path'
import BrowserWinHandler from './BrowserWinHandler'
const isDev = process.env.NODE_ENV === 'development'
const INDEX_PATH = path.join(__dirname, '..', 'renderer', 'index.html')
const DEV_SERVER_URL = process.env.DEV_SERVER_URL // eslint-disable-line prefer-destructuring
const winHandler = new BrowserWinHandler({
height: 600,
width: 1000
})
winHandler.onCreated(browserWindow => {
if (isDev) browserWindow.loadURL(DEV_SERVER_URL)
else browserWindow.loadFile(INDEX_PATH)
})
export default winHandler
변경 후 핫 재로드로 자동으로 변경 사항이 반영됩니다.
끝에
처음으로 electron-nuxt를 사용해 보았습니다만, Nuxt.js를 사용한 적이 있는 사람이라면 거기까지 집착하는 요소는 없을까라고 생각했습니다.
다만, electron의 아키텍쳐를 확실히 알고 있지 않으면, 실운용하는 경우는 어려울까라고 생각합니다.
앞으로도 조금 electron-nuxt를 만지려고 생각하기 때문에, 그 때는 또 기사로 할까 생각합니다.
쓴 코드는 여기 에 만들었으므로, 신경이 쓰이는 분은 봐 주세요.
Reference
이 문제에 관하여(electron-nuxt를 사용하여 데스크톱 애플리케이션 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yakiniku0220/items/c78ee5c61bd245e80d7a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)