npm 电子熔炉卡在松鼠身上

li9yvcax  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(125)

我一直在尝试打包一个电子应用程序,但它从来没有超过这个阶段:

我已经尝试了3次,每次都需要几个小时,但没有完成 Package 松鼠。

软件包.json:

  1. {
  2. "name": "NAME",
  3. "version": "0.1.0",
  4. "private": false,
  5. "author": "AUTHOR",
  6. "description": "DESCRIPTION.",
  7. "dependencies": {
  8. "@emotion/react": "^11.10.0",
  9. "@emotion/styled": "^11.10.0",
  10. "@fortawesome/fontawesome-svg-core": "^6.1.2",
  11. "@fortawesome/free-brands-svg-icons": "^6.1.2",
  12. "@fortawesome/free-solid-svg-icons": "^6.1.2",
  13. "@fortawesome/react-fontawesome": "^0.2.0",
  14. "@material-ui/core": "^4.12.4",
  15. "@mui/material": "^5.9.2",
  16. "@testing-library/jest-dom": "^5.16.4",
  17. "@testing-library/react": "^13.3.0",
  18. "@testing-library/user-event": "^13.5.0",
  19. "bootstrap": "^5.2.0",
  20. "cross-env": "^7.0.3",
  21. "electron": "^19.0.10",
  22. "electron-compile": "^6.4.4",
  23. "electron-forge": "^5.2.4",
  24. "electron-is-dev": "^2.0.0",
  25. "react": "^18.2.0",
  26. "react-bootstrap": "^2.4.0",
  27. "react-dom": "^18.2.0",
  28. "react-dropdown": "^1.10.0",
  29. "react-modal": "^3.15.1",
  30. "react-scripts": "5.0.1",
  31. "reactjs-popup": "^2.0.5",
  32. "web-vitals": "^2.1.4"
  33. },
  34. "scripts": {
  35. "start": "react-scripts start",
  36. "build": "react-scripts build",
  37. "test": "react-scripts test",
  38. "eject": "react-scripts eject",
  39. "dev": "concurrently -k \"cross-env BROWSER=none npm start\" \"npm:electron\"",
  40. "electron": "wait-on tcp:3000 && electron .",
  41. "package": "react-scripts build && electron-forge package",
  42. "make-mac": "react-scripts build && electron-forge make --platform darwin",
  43. "make-linux": "react-scripts build && electron-forge make --platform linux",
  44. "make": "react-scripts build && electron-forge make"
  45. },
  46. "eslintConfig": {
  47. "extends": [
  48. "react-app",
  49. "react-app/jest"
  50. ]
  51. },
  52. "browserslist": {
  53. "production": [
  54. ">0.2%",
  55. "not dead",
  56. "not op_mini all"
  57. ],
  58. "development": [
  59. "last 1 chrome version",
  60. "last 1 firefox version",
  61. "last 1 safari version"
  62. ]
  63. },
  64. "devDependencies": {
  65. "concurrently": "^7.3.0",
  66. "electron-prebuilt-compile": "8.2.0",
  67. "wait-on": "^6.0.1"
  68. },
  69. "main": "public/electron.js",
  70. "homepage": "./",
  71. "config": {
  72. "forge": {
  73. "packagerConfig": {},
  74. "makers": [
  75. {
  76. "name": "@electron-forge/maker-squirrel",
  77. "config": {
  78. "name": "stock_trading_app"
  79. }
  80. },
  81. {
  82. "name": "@electron-forge/maker-zip",
  83. "platforms": [
  84. "darwin",
  85. "linux",
  86. "win32"
  87. ]
  88. },
  89. {
  90. "name": "@electron-forge/maker-deb",
  91. "config": {}
  92. },
  93. {
  94. "name": "@electron-forge/maker-rpm",
  95. "config": {}
  96. }
  97. ]
  98. }
  99. }
  100. }

application文件出现在我的out > win32-x64文件夹中,但它不是.exe文件。
我还有一个随机的out > make > squirrel.windows > x64文件夹,里面什么都没有。

u3r8eeie

u3r8eeie1#

这个过程需要很长时间,因为你要打包整个应用程序,包括node_modules
一个快速的解决方案是将参数"asar": true添加到packagerConfig 1中。但是,除非您希望打包未编译的文件,否则您可能只希望保留build文件夹。
您已经配置了脚本在运行make之前运行build。现在,由于Electron Forge没有给予覆盖dir2的选项,您将不得不使用ignore选项来排除您不希望包含在打包的app3中的文件和文件夹。

  1. packagerConfig: {
  2. ignore: [
  3. "^\\/public$",
  4. "^\\/src$",
  5. "^\\/node_modules$",
  6. "^\\/[.].+",
  7. // [...]
  8. ]
  9. },

1.为了记录在案,我发现提到了这个hereherehere
2.如文档中所述→“请注意,您不能覆盖dirarchplatformoutelectronVersion选项,因为它们是由Electron Forge内部设置的”
3.请参阅this answer的另一个示例。

展开查看全部

相关问题