【问题标题】:Can't publish the electron app from github无法从 github 发布电子应用程序
【发布时间】:2021-08-17 22:57:56
【问题描述】:

我刚刚创建了电子反应应用程序,还实现了自动更新功能。但出乎意料的是,我从 electron-builder 那里得到了一些奇怪的错误日志。

我不确定如何解决它。我尝试了不同的方法。我希望这个社区能帮助我。提前致谢。

此配置适用于开发本地构建,并且在安装后也可以按预期正常工作。问题只会引发npm run package-deploy 命令。

我做错了吗?

package.json

{
  "name": "analyzer",
  "version": "1.2.1",
  "private": true,
  "homepage": "./",
  "author": "Mohamed Jakkariya",
  "description": "This application used for analyzing the stock information and find useful data for trading in the better way.",
  "dependencies": {
    "@material-ui/core": "^4.11.4",
    "@material-ui/icons": "^4.11.2",
    "@material-ui/lab": "*",
    "@reduxjs/toolkit": "^1.5.1",
    "csv-parser": "^3.0.0",
    "electron-is-dev": "^2.0.0",
    "electron-updater": "^4.3.9",
    "moment": "^2.29.1",
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "react-redux": "^7.2.4",
    "react-router-dom": "^5.2.0",
    "react-scripts": "4.0.3",
    "styled-components": "^5.3.0"
  },
  "scripts": {
    "start": "set BROWSER=none && react-scripts start",
    "electron": "electron .",
    "start-electron": "set ELECTRON_START_URL=http://localhost:3000 && electron .",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "build": "react-scripts build",
    "build-electron": "robocopy src/electron build/electron /S ",
    "lint": "eslint src/**/*.js src/**/*.jsx",
    "package-build": "electron-builder build --win -c.extraMetadata.main=build/electron.js --publish never",
    "package-deploy": "electron-builder build --win -c.extraMetadata.main=build/electron.js --publish always"
  },
  "main": "public/electron.js",
  "publish": {
    "provider": "github",
    "repo": "nift-analyzer",
    "owner": "MohamedJakkariya",
    "releaseType": "release"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/MohamedJakkariya/nift-analyzer/"
  },
  "build": {
    "productName": "Stock Analyzer",
    "appId": "com.mohamedjakkariya.nift-analyzer",
    "files": [
      "build/**/*",
      "node_modules/**/*"
    ],
    "win": {
      "icon": "./public/icon.png",
      "publish": [
        "github"
      ]
    },
    "directories": {
      "buildResources": "assets"
    }
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "electron": "^12.0.8",
    "electron-builder": "^22.11.1",
    "electron-devtools-installer": "^3.2.0",
    "eslint-plugin-react": "^7.23.2"
  }
}

错误日志

> analyzer@1.2.1 package-deploy
> electron-builder build --win -c.extraMetadata.main=build/electron.js --publish always

  • electron-builder  version=22.10.5 os=10.0.18362
  • cannot check updates  error=TypeError: update_notifier_1.default is not a function
  • loaded configuration  file=package.json ("build" field)
  • loaded parent configuration  preset=react-cra
  • writing effective config  file=dist\builder-effective-config.yaml
  • packaging       platform=win32 arch=x64 electron=12.0.8 appOutDir=dist\win-unpacked
  • building        target=nsis file=dist\Stock Analyzer Setup 1.2.1.exe archs=x64 oneClick=true perMachine=false
  • building block map  blockMapFile=dist\Stock Analyzer Setup 1.2.1.exe.blockmap
  • publishing      publisher=Github (owner: MohamedJakkariya, project: nift-analyzer, version: 1.2.1)
  • uploading       file=Stock-Analyzer-Setup-1.2.1.exe.blockmap provider=GitHub
  • uploading       file=Stock-Analyzer-Setup-1.2.1.exe provider=GitHub
  ⨯ Cannot cleanup: 

Error #1 --------------------------------------------------------------------------------
TypeError: Cannot read property 'getType' of undefined
    at GitHubPublisher.doUploadFile (C:\Users\MD\Desktop\stock-calc\node_modules\electron-publish\src\gitHubPublisher.ts:190:36)
    at GitHubPublisher.doUpload (C:\Users\MD\Desktop\stock-calc\node_modules\electron-publish\src\gitHubPublisher.ts:170:23)
    at processTicksAndRejections (node:internal/process/task_queues:94:5)
    at GitHubPublisher.upload (C:\Users\MD\Desktop\stock-calc\node_modules\electron-publish\src\publisher.ts:87:5)
    at async Promise.all (index 2)
    at AsyncTaskManager.awaitTasks (C:\Users\MD\Desktop\stock-calc\node_modules\builder-util\src\asyncTaskManager.ts:65:25)
    at PublishManager.awaitTasks (C:\Users\MD\Desktop\stock-calc\node_modules\app-builder-lib\src\publish\PublishManager.ts:228:5)
    at Object.executeFinally (C:\Users\MD\Desktop\stock-calc\node_modules\builder-util\src\promise.ts:23:3)

Error #2 --------------------------------------------------------------------------------
TypeError: Cannot read property 'getType' of undefined
    at GitHubPublisher.doUploadFile (C:\Users\MD\Desktop\stock-calc\node_modules\electron-publish\src\gitHubPublisher.ts:190:36)
    at GitHubPublisher.doUpload (C:\Users\MD\Desktop\stock-calc\node_modules\electron-publish\src\gitHubPublisher.ts:170:23)
    at processTicksAndRejections (node:internal/process/task_queues:94:5)
    at GitHubPublisher.upload (C:\Users\MD\Desktop\stock-calc\node_modules\electron-publish\src\publisher.ts:87:5)
    at async Promise.all (index 3)
    at AsyncTaskManager.awaitTasks (C:\Users\MD\Desktop\stock-calc\node_modules\builder-util\src\asyncTaskManager.ts:65:25)
    at PublishManager.awaitTasks (C:\Users\MD\Desktop\stock-calc\node_modules\app-builder-lib\src\publish\PublishManager.ts:228:5)
    at Object.executeFinally (C:\Users\MD\Desktop\stock-calc\node_modules\builder-util\src\promise.ts:23:3)  failedTask=build stackTrace=Error: Cannot cleanup

【问题讨论】:

    标签: node.js electron electron-builder electron-updater electron-react-boilerplate


    【解决方案1】:

    万岁!我自己解决了这个问题。感谢我自己。在这里,这是我的情况的解决方案。我希望它会在将来对某人有所帮助。

    1. package.json应该是这样的,
    {
      "name": "analyzer",
      "version": "1.2.1",
      "private": true,
      "homepage": "./",
      "author": "Mohamed Jakkariya",
      "description": "This application used for analyzing the stock information and find useful data for trading in the better way.",
      "dependencies": {
        "electron-is-dev": "^2.0.0",
        "electron-updater": "^4.3.9",
        "react": "^17.0.2",
        "react-dom": "^17.0.2",
        "react-router-dom": "^5.2.0",
        "react-scripts": "4.0.3"
      },
      "scripts": {
        "start": "set BROWSER=none && react-scripts start",
        "electron": "electron .",
        "start-electron": "set ELECTRON_START_URL=http://localhost:3000 && electron .",
        "test": "react-scripts test",
        "eject": "react-scripts eject",
        "build": "react-scripts build",
        "build-electron": "robocopy src/electron build/electron /S ",
        "lint": "eslint src/**/*.js src/**/*.jsx",
        "package-build": "electron-builder build --win -p never",
        "package-deploy": "electron-builder build --win -p always"
      },
      "main": "public/electron.js",
      "repository": {
        "type": "git",
        "url": "https://github.com/MohamedJakkariya/nift-analyzer.git"
      },
      "build": {
        "publish": [
          {
            "provider": "github",
            "owner": "MohamedJakkariya",
            "repo": "nift-analyzer"
          }
        ],
        "productName": "Stock Analyzer",
        "appId": "com.mohamedjakkariya.nift-analyzer",
        "files": [
          "build/**/*",
          "node_modules/**/*"
        ],
        "win": {
          "icon": "./public/icon.png",
          "publish": [
            "github"
          ]
        },
        "directories": {
          "buildResources": "assets"
        }
      },
      "eslintConfig": {
        "extends": [
          "react-app",
          "react-app/jest"
        ]
      },
      "browserslist": {
        "production": [
          ">0.2%",
          "not dead",
          "not op_mini all"
        ],
        "development": [
          "last 1 chrome version",
          "last 1 firefox version",
          "last 1 safari version"
        ]
      },
      "devDependencies": {
        "electron": "^12.0.8",
        "electron-builder": "^22.11.1",
        "electron-devtools-installer": "^3.2.0",
        "eslint-plugin-react": "^7.23.2"
      }
    }
    
    1. 删除 -> package.lock.json

    2. 删除 -> node_modules

    3. 输入npm install

    4. 为该特定存储库生成 GitHub 个人访问令牌。 (就我而言,这是一个私人回购) 注意: 访问令牌需获得repo的权限。

    5. 为访问令牌设置 GH_TOKEN 的 env 值。

      1. 打开 PowerShell,然后键入
      [Environment]::SetEnvironmentVariable("GH_TOKEN","<TOKEN>","User") 
      
    6. 运行部署命令npm run package-deploy

    就是这样!快乐编码。 ??

    【讨论】:

      猜你喜欢
      • 2019-03-10
      • 2020-05-09
      • 2015-03-26
      • 2016-02-01
      • 1970-01-01
      • 2012-07-06
      • 2014-08-11
      • 2012-09-17
      • 2021-01-01
      相关资源
      最近更新 更多