電子冒険:エピソード78:クッキークリッカーゲーム包装


前のエピソードでは、我々はシンプルな静的なクッキークリッカーゲームアプリを作成しました.今すぐスタンドアロンアプリケーションにパッケージしましょう.
電子にはいくつかの異なるパッケージが存在する.このエピソードでは、Electron Forgeを試してみます.

インポートとインストール
$ npm install --save-dev @electron-forge/cli
$ npx electron-forge import
電子鍛冶は、既存のアプリケーションをインポートしようとするインポートツールが付属しています.
我々はすぐにいくつかの問題を解決した.
  • Please set the "version" in your application's package.json -私は、それがパッケージ
  • の命名に役に立つと思います
  • Error: Unable to find all properties in parent package.json files. Missing props: ["productName","name"]と同じで、
  • Error: packageJSON.main must be set to a valid entry point for your Electron app -あなたがそれを指定しないならば、電子のデフォルトはindex.jsにデフォルトです、しかし、電子フォージはそれが明らかに
  • それで、プロセスをリセットして、それらの問題を修正します.
    {
      "name": "episode-78-cookie-clicker-game-package",
      "version": 0.78,
      "main": "index.js",
      "devDependencies": {
        "electron": "^15.1.1",
        "jquery": "^3.6.0"
      },
      "scripts": {
        "start": "electron ."
      }
    }
    
    これは実際にパッケージを構築しましたが、まだ動作しませんでした.
    修正に必要な次のいくつかの問題点
  • 私は誤ってpackage.jsonではなく0.78としてバージョンを入れました、そして、それは若干の非常に不可解で完全にungooglableなエラー
  • につながりました
  • "0.78"jqueryではなくdependenciesでなければなりません.それを開発することは何の違いもありませんが、パッケージ化され、何が得られないのかを決定します.
  • 私は相対パスを使用するためにdevDependenciesにいくつかの調整を行う必要がありました.例としてWindowsのショートカットを修正したものもある.
  • それで、私自身と輸入業者の間で数回繰り返した後、私はindex.jsに達しました.
    {
      "name": "episode-78-cookie-clicker-game-package",
      "version": "0.78",
      "main": "src/index.js",
      "devDependencies": {
        "@electron-forge/cli": "^6.0.0-beta.61",
        "@electron-forge/maker-deb": "^6.0.0-beta.61",
        "@electron-forge/maker-rpm": "^6.0.0-beta.61",
        "@electron-forge/maker-squirrel": "^6.0.0-beta.61",
        "@electron-forge/maker-zip": "^6.0.0-beta.61",
        "electron": "^15.1.1"
      },
      "scripts": {
        "start": "electron-forge start",
        "package": "electron-forge package",
        "make": "electron-forge make"
      },
      "dependencies": {
        "electron-squirrel-startup": "^1.0.0",
        "jquery": "^3.6.0"
      },
      "config": {
        "forge": {
          "packagerConfig": {},
          "makers": [
            {
              "name": "@electron-forge/maker-squirrel",
              "config": {
                "name": "episode_78_cookie_clicker_game_package"
              }
            },
            {
              "name": "@electron-forge/maker-zip",
              "platforms": [
                "darwin"
              ]
            },
            {
              "name": "@electron-forge/maker-deb",
              "config": {}
            },
            {
              "name": "@electron-forge/maker-rpm",
              "config": {}
            }
          ]
        }
      }
    }
    
    私も、ソースコードをpackage.jsonフォルダに動かして、それに応じて輸入を調整しました.
    最終的なsrc :
    let { app, BrowserWindow } = require("electron")
    
    // Handle creating/removing shortcuts on Windows when installing/uninstalling.
    if (require("electron-squirrel-startup")) {
      app.quit()
    }
    
    function createWindow() {
      let win = new BrowserWindow({
        webPreferences: {
          preload: `${__dirname}/preload.js`,
        },
      })
      win.loadFile(`${__dirname}/index.html`)
    }
    
    app.on("ready", createWindow)
    
    app.on("window-all-closed", () => {
      app.quit()
    })
    
    実際のアプリはちょうど前と同じです.

    結果
    結果を以下に示します.


    全体のプロセスは非常に微調整され、非常に悪いエラーのフィードバックが、最後にそれはあまりにも悪くはなかった.次のエピソードでは、いくつかのより複雑なスパのアプリを設定し、パッケージにしようとします.
    平常通りall the code for the episode is here.