问题描述
我刚刚创建了我的电子反应应用程序,并实现了自动更新功能。但出乎意料的是,我从电子制造商那里得到了一些奇怪的错误日志。
我不知道如何解决它。我尝试了不同的方法。我希望这个社区可以帮助我。提前致谢。
此配置适用于开发本地构建,并且在安装后也能按预期正常工作。该问题仅引发 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
解决方法
万岁!我自己解决了这个问题。感谢我自己。在这里,这是我的情况的解决方案。我希望它会在未来对某人有所帮助。
- 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"
}
}
-
删除 -> package.lock.json。
-
移除 -> node_modules。
-
输入
npm install
。 -
为该特定存储库生成 GitHub 个人访问令牌。 (就我而言,这是一个私人回购) 注意:访问令牌应获得repo的许可。
-
为访问令牌设置 GH_TOKEN 的 env 值。
- 打开 PowerShell,然后输入
[Environment]::SetEnvironmentVariable("GH_TOKEN","<TOKEN>","User")
-
运行部署命令
npm run package-deploy
。
就是这样!快乐编码。 ??