[javascript]electron-vueを使ってみました。

electron

electronを使って、desktopアプリを作ってみようと思いたちました。
以前angular+electronでtodoアプリを作ったので、今回はelectron-vueを使ってみます。(なんかgithubで人気そうだったので選んでみました)

vue-cli & electron-vue を使ってプロジェクト作成

npmでvue-cliをインストールして、そこからelectron-vueを使ってプロジェクトを作ります。

npm install -g vue-cli
vue init simulatedgreg/electron-vue [project name]

project build

プロジェクト作成後、下記のコマンドで作成中のdesktopアプリが確認できます。

npm run dev

こんな感じで立ち上がります。
立ち上げたままでファイル編集すると、自動で更新して反映してくれます。

エラーが発生

node v12.8.1 を使っていたのですが、下記のようにエラーが発生しました。。

 ERROR in   ReferenceError: process is not defined

    - index.ejs:11 eval
      [.]/[html-webpack-plugin]/lib/loader.js!./src/index.ejs:11:2

    - index.ejs:16 module.exports
      [.]/[html-webpack-plugin]/lib/loader.js!./src/index.ejs:16:3

これを調べてみると、nodeのバージョン関連のエラーだったみたいで、
v10.16.3にnodeのバージョンを下げると、ビルドできます。

node.jsのバージョンはnpmのnをインストールすると切り替えることができます。

フォルダ構成

├ ─ ─  index.ejs
├ ─ ─  main
│    ├ ─ ─  index.dev.js
│    └ ─ ─  index.js
└ ─ ─  renderer
    ├ ─ ─  App.vue
    ├ ─ ─  assets
    │    └ ─ ─  logo.png
    ├ ─ ─  components
    │    ├ ─ ─  LandingPage
    │    │    └ ─ ─  SystemInformation.vue
    │    └ ─ ─  LandingPage.vue
    ├ ─ ─  main.js
    ├ ─ ─  router
    │    └ ─ ─  index.js
    └ ─ ─  store
        ├ ─ ─  index.js
        └ ─ ─  modules
            ├ ─ ─  Counter.js
            └ ─ ─  index.js

フォルダ構成はこんな感じです。
main\index.js に画面の幅や高さを設定できたりします。
たぶん全体的な設定を行うところですね。🤔

rendererの下が表示する画面のソースをおくところです。
router\index.js にルーティングを書きます。(ここのURLにアクセスしたらこの画面を出すみたいな)

ルーティング

export default new Router({
  routes: [
    {
      path: '/',
      name: 'landing-page',
      component: require('@/components/LandingPage').default
    },
    {
      path: '*',
      redirect: '/'
    }
  ]
})

初期はこんな感じで、LandingPageが呼ばれるようになってます。
ほかのところにアクセスされてもredirectでトップがよばれてるみたいですね。

後は、componentsの中に画面を書いていけばよさそうです。

コメント

タイトルとURLをコピーしました