electron 电子构建器应用程序在构建后失败

izkcnapc  于 6个月前  发布在  Electron
关注(0)|答案(1)|浏览(73)

我正在寻找一个人谁可以帮助我关于电子建设者的问题.我创建了一个应用程序使用Node(18 v),npm,Typescript,Sequelize,sequelize-typescript,Sqlite3,React,和设计和其他依赖关系.当我建立应用程序,一切顺利,我可以看到我的发布文件夹,其中包含应用程序文件夹和它们的文件,也与应用程序构建文件夹,但当我试图在我的MAC,什么也没发生.在建设过程中,一些警报显示为固定的,但后来一切都很好。
overview of my work directoryview releated about release folders
用于构建过程的包(我使用npm run包进行构建)

"package": "ts-node ./.erb/scripts/clean.js dist && npm run build && electron-builder build --publish never",
"build:main": "cross-env NODE_ENV=production TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.main.prod.ts",
"build:renderer": "cross-env NODE_ENV=production TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.renderer.prod.ts",

字符串
完整包. json

{
  "description": "A foundation for scalable desktop apps",
  "main": "./src/main/main.ts",
  "scripts": {
    "build": "concurrently \"npm run build:main\" \"npm run build:renderer\"",
    "build:main": "cross-env NODE_ENV=production TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.main.prod.ts",
    "build:renderer": "cross-env NODE_ENV=production TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.renderer.prod.ts",
    "postinstall": "ts-node .erb/scripts/check-native-dep.js && electron-builder install-app-deps && cross-env NODE_ENV=development TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.renderer.dev.dll.ts",
    "lint": "cross-env NODE_ENV=development eslint . --ext .js,.jsx,.ts,.tsx",
    "package": "ts-node ./.erb/scripts/clean.js dist && npm run build && electron-builder build --publish never",
    "rebuild": "electron-rebuild --parallel --types prod,dev,optional --module-dir release/app",
    "start": "ts-node ./.erb/scripts/check-port-in-use.js && npm run start:renderer",
    "start:main": "cross-env NODE_ENV=development electronmon -r ts-node/register/transpile-only .",
    "start:preload": "cross-env NODE_ENV=development TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.preload.dev.ts",
    "start:renderer": "cross-env NODE_ENV=development TS_NODE_TRANSPILE_ONLY=true webpack serve --config ./.erb/configs/webpack.config.renderer.dev.ts",
    "test": "jest"
  },
  "browserslist": [],
  "prettier": {
    "singleQuote": true,
    "overrides": [
      {
        "files": [
          ".prettierrc",
          ".eslintrc"
        ],
        "options": {
          "parser": "json"
        }
      }
    ]
  },
  "jest": {
    "moduleDirectories": [
      "node_modules",
      "release/app/node_modules",
      "src"
    ],
    "moduleFileExtensions": [
      "js",
      "jsx",
      "ts",
      "tsx",
      "json"
    ],
    "moduleNameMapper": {
      "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/.erb/mocks/fileMock.js",
      "\\.(css|less|sass|scss)$": "identity-obj-proxy"
    },
    "setupFiles": [
      "./.erb/scripts/check-build-exists.ts"
    ],
    "testEnvironment": "jsdom",
    "testEnvironmentOptions": {
      "url": "http://localhost/"
    },
    "testPathIgnorePatterns": [
      "release/app/dist",
      ".erb/dll"
    ],
    "transform": {
      "\\.(ts|tsx|js|jsx)$": "ts-jest"
    }
  },
  "dependencies": {
    "antd": "^5.3.1",
    "axios": "^1.3.4",
    "body-parser": "^1.20.2",
    "dayjs": "^1.11.7",
    "electron-debug": "^3.2.0",
    "electron-log": "^4.4.8",
    "electron-updater": "^5.3.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-router-dom": "^6.9.0",
    "reflect-metadata": "^0.1.13",
    "sequelize-typescript": "^2.1.5",
    "string-replace-loader": "^3.1.0",
    "xlsx": "^0.18.5"
  },
  "devDependencies": {
    "@electron/notarize": "^1.2.3",
    "@electron/rebuild": "^3.2.10",
    "@pmmmwh/react-refresh-webpack-plugin": "^0.5.10",
    "@svgr/webpack": "^6.5.1",
    "@teamsupercell/typings-for-css-modules-loader": "^2.5.2",
    "@testing-library/jest-dom": "^5.16.5",
    "@testing-library/react": "^13.4.0",
    "@types/jest": "^29.4.0",
    "@types/node": "18.13.0",
    "@types/react": "^18.0.28",
    "@types/react-dom": "^18.0.10",
    "@types/react-test-renderer": "^18.0.0",
    "@types/webpack-bundle-analyzer": "^4.6.0",
    "@typescript-eslint/eslint-plugin": "^5.51.0",
    "@typescript-eslint/parser": "^5.51.0",
    "browserslist-config-erb": "^0.0.3",
    "chalk": "^4.1.2",
    "cls-hooked": "^4.2.2",
    "concurrently": "^7.6.0",
    "core-js": "^3.27.2",
    "cross-env": "^7.0.3",
    "css-loader": "^6.7.3",
    "css-minimizer-webpack-plugin": "^4.2.2",
    "detect-port": "^1.5.1",
    "electron": "^23.1.3",
    "electron-builder": "^23.6.0",
    "electron-devtools-installer": "^3.2.0",
    "electronmon": "^2.0.2",
    "eslint": "^8.33.0",
    "eslint-config-airbnb-base": "^15.0.0",
    "eslint-config-erb": "^4.0.6",
    "eslint-import-resolver-typescript": "^3.5.3",
    "eslint-import-resolver-webpack": "^0.13.2",
    "eslint-plugin-compat": "^4.1.1",
    "eslint-plugin-import": "^2.27.5",
    "eslint-plugin-jest": "^27.2.1",
    "eslint-plugin-jsx-a11y": "^6.7.1",
    "eslint-plugin-promise": "^6.1.1",
    "eslint-plugin-react": "^7.32.2",
    "file-loader": "^6.2.0",
    "html-webpack-plugin": "^5.5.0",
    "identity-obj-proxy": "^3.0.0",
    "jest": "^29.4.2",
    "jest-environment-jsdom": "^29.4.2",
    "mini-css-extract-plugin": "^2.7.2",
    "prettier": "^2.8.4",
    "react-refresh": "^0.14.0",
    "react-test-renderer": "^18.2.0",
    "rimraf": "^4.1.2",
    "sass": "^1.58.0",
    "sass-loader": "^13.2.0",
    "sequelize": "^6.28.0",
    "sqlite3": "^5.1.6",
    "style-loader": "^3.3.1",
    "terser-webpack-plugin": "^5.3.6",
    "ts-jest": "^29.0.5",
    "ts-loader": "^9.4.2",
    "ts-node": "^10.9.1",
    "tsconfig-paths-webpack-plugin": "^4.0.0",
    "typescript": "^4.9.5",
    "url-loader": "^4.1.1",
    "webpack": "^5.75.0",
    "webpack-bundle-analyzer": "^4.7.0",
    "webpack-cli": "^5.0.1",
    "webpack-dev-server": "^4.11.1",
    "webpack-merge": "^5.8.0"
  },
  "build": {
    "productName": "ElectronReact",
    "appId": "org.erb.ElectronReact",
    "asar": true,
    "asarUnpack": "**\\*.{node,dll}",
    "files": [
      "dist",
      "node_modules",
      "package.json"
    ],
    "afterSign": ".erb/scripts/notarize.js",
    "mac": {
      "target": {
        "target": "default",
        "arch": [
          "arm64",
          "x64"
        ]
      },
      "type": "distribution",
      "hardenedRuntime": true,
      "entitlements": "assets/entitlements.mac.plist",
      "entitlementsInherit": "assets/entitlements.mac.plist",
      "gatekeeperAssess": false
    },
    "dmg": {
      "contents": [
        {
          "x": 130,
          "y": 220
        },
        {
          "x": 410,
          "y": 220,
          "type": "link",
          "path": "/Applications"
        }
      ]
    },
    "win": {
      "target": [
        "nsis"
      ]
    },
    "linux": {
      "target": [
        "AppImage"
      ],
      "category": "Development"
    },
    "directories": {
      "app": "release/app",
      "buildResources": "assets",
      "output": "release/build"
    },
    "extraResources": [
      "./assets/**"
    ],
    "publish": {
      "provider": "github",
      "owner": "electron-react-boilerplate",
      "repo": "electron-react-boilerplate"
    }
  },
  "collective": {
    "url": "https://opencollective.com/electron-react-boilerplate-594"
  },
  "devEngines": {
    "node": ">=14.x",
    "npm": ">=7.x"
  },
  "electronmon": {
    "patterns": [
      "!**/**",
      "src/main/**"
    ],
    "logLevel": "quiet"
  }
}


package.json位于版本中的App文件夹中

{
  "name": "electron-react-boilerplate",
  "version": "4.6.0",
  "description": "A foundation for scalable desktop apps",
  "license": "MIT",
  "author": {
    "name": "Electron React Boilerplate Maintainers",
    "email": "[email protected]",
    "url": "https://github.com/electron-react-boilerplate"
  },
  "main": "./dist/main/main.js",
  "scripts": {
    "rebuild": "node -r ts-node/register ../../.erb/scripts/electron-rebuild.js",
    "postinstall": "npm run rebuild && npm run link-modules",
    "link-modules": "node -r ts-node/register ../../.erb/scripts/link-modules.ts"
  },
  "dependencies": {
    "cls-hooked": "^4.2.2",
    "sequelize": "^6.28.0",
    "sqlite3": "^5.1.6"
  }
}


我试图解决它检查dependecies版本,运行电子生成器脚本,移动SQLite文件到其他文件夹,但它是没有帮助的.我试图在我的MAC中运行应用程序,但然后我必须创建另一个exe为Windows.

xxls0lw8

xxls0lw81#

我也遇到了同样的问题。我通过修改.erb/scripts/clean.js来修复它。
默认情况下,它会在包后删除.dll文件夹,然后“npm run build-dll”失败。
Idk如果它可以帮助:

import rimraf from 'rimraf';
import fs from 'fs';
import webpackPaths from '../configs/webpack.paths';

const foldersToRemove = [
  webpackPaths.distPath,
  webpackPaths.buildPath,
  // webpackPaths.dllPath, <-- here
];

foldersToRemove.forEach((folder) => {
  if (fs.existsSync(folder)) rimraf.sync(folder);
});

字符串

相关问题