Dia*_*rdu 4 macos node.js npm electron-builder
我在电子构建器的 package.json 配置中使用 pkg 选项。我有一些预安装脚本想要在安装时运行。我已按照电子生成器的说明设置脚本的位置,但 npm 似乎无法正确找到文件。
\n\n我尝试使用 chmod +x file 命令更改文件和文件夹的所有权,但错误仍然存在。
\n\n这是关于 pkg 脚本配置的代码:
\n\n"build": {\n "mac": {\n "target":[\n "pkg"\n ]\n },\n "pkg":{\n "scripts":"build/pkg-scripts"\n }\n }\nRun Code Online (Sandbox Code Playgroud)\n\n我收到的错误消息是:
\n\nError: Exit code: 1. Command failed: pkgbuild --root /Users/user/myApp/myApp-out/electron-builder/mac --component-plist /Users/user/myApp/myApp/electron-builder/com.dessci.myApp.plist --install-location /Applications --scripts /Users/user/myApp/build/build/pkg-scripts /Users/user/mtdesktop/mtdesktop-out/electron-builder/com.dessci.myApp.pkg\npkgbuild: error: Cannot write package to "/Users/user/mtdesktop/mtdesktop-out/electron-builder/com.dessci.myApp.pkg". (The file \xe2\x80\x9cpkg-scripts\xe2\x80\x9d couldn\xe2\x80\x99t be opened.)\n\npkgbuild: Reading components from /Users/user/mtdesktop/mtdesktop-out/electron-builder/com.dessci.myApp.plist\npkgbuild: Adding component at myApp.app\n\npkgbuild: error: Cannot write package to "/Users/user/mtdesktop/mtdesktop-out/electron-builder/com.dessci.myApp.pkg". (The file \xe2\x80\x9cpkg-scripts\xe2\x80\x9d couldn\xe2\x80\x99t be opened.)\n\n at /Users/user/mtdesktop/node_modules/builder-util/src/util.ts:126:16\n at ChildProcess.exithandler (child_process.js:306:5)\n at ChildProcess.emit (events.js:193:13)\n at maybeClose (internal/child_process.js:999:16)\n at Process.ChildProcess._handle.onexit (internal/child_process.js:266:5)\nFrom previous event:\n at /Users/user/mtdesktop/node_modules/graceful-fs/graceful-fs.js:111:16\n at /Users/user/mtdesktop/node_modules/graceful-fs/graceful-fs.js:45:10\n at FSReqCallback.args [as oncomplete] (fs.js:145:20)\nFrom previous event:\n at PkgTarget.buildComponentPackage (/Users/user/mtdesktop/node_modules/app-builder-lib/src/targets/pkg.ts:115:113)\n at /Users/user/mtdesktop/node_modules/app-builder-lib/src/targets/pkg.ts:57:12\n at Generator.next (<anonymous>)\nFrom previous event:\n at PkgTarget.build (/Users/user/mtdesktop/node_modules/app-builder-lib/src/targets/pkg.ts:31:42)\n at Function.buildAsyncTargets (/Users/user/mtdesktop/node_modules/app-builder-lib/src/platformPackager.ts:140:36)\n at MacPackager.packageInDistributableFormat (/Users/user/mtdesktop/node_modules/app-builder-lib/src/platformPackager.ts:119:24)\n at nonMasPromise.then.then (/Users/user/mtdesktop/node_modules/app-builder-lib/src/macPackager.ts:90:26)\n at processImmediate (internal/timers.js:443:21)\nFrom previous event:\n at /Users/user/mtdesktop/node_modules/app-builder-lib/src/macPackager.ts:90:10\n at Generator.next (<anonymous>)\nFrom previous event:\n at MacPackager.pack (/Users/user/mtdesktop/node_modules/app-builder-lib/src/macPackager.ts:80:95)\n at /Users/user/mtdesktop/node_modules/app-builder-lib/src/packager.ts:430:24\n at Generator.next (<anonymous>)\n at xfs.stat (/Users/user/mtdesktop/node_modules/fs-extra-p/node_modules/fs-extra/lib/mkdirs/mkdirs.js:56:16)\n at /Users/user/mtdesktop/node_modules/graceful-fs/polyfills.js:285:20\n at FSReqCallback.oncomplete (fs.js:159:5)\nFrom previous event:\n at Packager.doBuild (/Users/user/mtdesktop/node_modules/app-builder-lib/src/packager.ts:396:24)\n at /Users/user/mtdesktop/node_modules/app-builder-lib/src/packager.ts:366:57\n at Generator.next (<anonymous>)\n at /Users/user/mtdesktop/node_modules/graceful-fs/graceful-fs.js:111:16\n at /Users/user/mtdesktop/node_modules/graceful-fs/graceful-fs.js:45:10\n at FSReqCallback.args [as oncomplete] (fs.js:145:20)\nFrom previous event:\n at Packager._build (/Users/user/mtdesktop/node_modules/app-builder-lib/src/packager.ts:335:133)\n at /Users/user/mtdesktop/node_modules/app-builder-lib/src/packager.ts:331:23\n at Generator.next (<anonymous>)\n at processImmediate (internal/timers.js:443:21)\nFrom previous event:\n at Packager.build (/Users/user/mtdesktop/node_modules/app-builder-lib/src/packager.ts:288:14)\n at build (/Users/user/mtdesktop/node_modules/app-builder-lib/src/index.ts:59:28)\n at build (/Users/user/mtdesktop/node_modules/electron-builder/src/builder.ts:227:10)\n at then (/Users/user/mtdesktop/node_modules/electron-builder/src/cli/cli.ts:46:19)\nRun Code Online (Sandbox Code Playgroud)\n
您需要为脚本值提供pkg-scripts 的相对路径。
\n\n包.json
\n\n"build": {\n"appId": "com.audio.application",\n"productName": "Audio-App",\n"artifactName": "${productName}-Setup-${version}.${ext}",\n"copyright": "Copyright \xc2\xa9 2020 Audio Corp",\n"mac": {\n "category": "com.audio.application",\n "target": [\n "pkg"\n ],\n "icon": "dist",\n "identity": "identity",\n "darkModeSupport": true,\n "hardenedRuntime": true,\n "gatekeeperAssess": false,\n "artifactName": "${productName}.${ext}"\n},\n"pkg": {\n "scripts": "../build/pkg-scripts",\n "installLocation": "/Applications",\n "background": {\n "file": "build/icon/sound.png",\n "alignment": "bottomleft"\n },\n "allowAnywhere": true,\n "allowCurrentUserHome": true,\n "allowRootDirectory": true,\n "license": "build/license.html",\n "welcome": "build/resources/welcome.txt",\n "conclusion": "build/resources/conclusion.txt",\n "isVersionChecked": true,\n "isRelocatable": false,\n "overwriteAction": "upgrade"\n},\n"directories": {\n "buildResources": "release",\n "output": "release"\n}\n},\nRun Code Online (Sandbox Code Playgroud)\n\n构建目录的文件夹结构-\n
\n(位于项目的根级别)
preinstall.sh -\n
\n(确保您已对此文件运行 chmod +x 以使其可执行)
#!/bin/sh\necho "Executing preinstaller script for custom installer"\n\n# Deleting App components from Application folder.\necho "Deleting Audio-Configration Logs"\nlogsPath=~/Library/Logs/Audio-Configration\nif [ -d "$logsPath" ]\nthen\nrm -rf ~/Library/Logs/Audio-Configration\necho "***Deleted Audio-Configration Logs Successfully***"\nfi\n\necho "Deleting Audio-Configration Application Support"\napplicationSupportPath=~/Library/Application\\ Support/Audio-Configration\nif [ -d "$applicationSupportPath" ]\nthen\nrm -rf ~/Library/Application\\ Support/Audio-Configration\necho "***Deleted Audio-Configration Application Support Successfully***"\nfi\n\necho "Finished:preflight"\nexit 0\nRun Code Online (Sandbox Code Playgroud)\n\n上面的预安装脚本是为了确保当用户重新安装应用程序时,需要删除Application Support目录中以前的Logs和应用程序相关内容
\n| 归档时间: |
|
| 查看次数: |
3936 次 |
| 最近记录: |