Không thể thêm biểu tượng vào ứng dụng điện tử với trình tạo điện tử


8

Tôi đã tạo một ứng dụng với Electron và đang cố gắng gói nó với Electron Builder.

Liên kết đến kho lưu trữ

Không chứa thư mục node_modules: Repo tại đây

Tôi có một thư mục có tên là build với icon.ico của tôi trong đó và gói.json của tôi như sau:

{
    "name": "attendant",
    "productName": "Attendant",
    "version": "0.1.0",
    "description": "A simple app to streamline web development by allowing you index.html to open on a live server in the default browser",
    "main": "main.js",
    "scripts": {
        "start": "electron .",
        "pack": "electron-builder --dir",
        "dist": "electron-builder"
    },
    "devDependencies": {
        "electron": "^8.0.1",
        "electron-builder": "^22.3.2"
    },
    "build": {
        "appId": "com.attendant",
        "win": {
            "icon": "./build/icon.png",
            "title": "Attendant",
            "msi": true
        }
    }
}

Tuy nhiên, tôi nhận được lỗi sau:

error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Bất kỳ ý tưởng tại sao điều này xảy ra và làm thế nào để khắc phục nó?

Với những điều sau đây package.json:

{
    "name": "attendant",
    "productName": "Attendant",
    "version": "0.1.0",
    "description": "A simple app to streamline web development by allowing you index.html to open on a live server in the default browser",
    "main": "main.js",
    "scripts": {
        "start": "electron .",
        "pack": "electron-builder --dir",
        "dist": "electron-builder build"
    },
    "devDependencies": {
        "electron": "^8.0.1",
        "electron-builder": "^22.3.2"
    },
    "build": {
        "appId": "com.attendant",
        "directories": {
            "buildResources": "build"
        },
        "win": {
            "icon": "build/icon.png",
            "title": "Attendant",
            "msi": true
        }
    }
}

Tôi nhận được lỗi:

yarn dist
yarn run v1.22.0
warning package.json: No license field
$ electron-builder build
  • electron-builder  version=22.3.2 os=10.0.18363
  • loaded configuration  file=package.json ("build" field)
  • author is missed in the package.json  appPackageFile=C:\Users\alexr\Documents\GitHub\attendant-app\app\package.json
  ⨯ Invalid configuration object. electron-builder 22.3.2 has been initialised using a configuration object that 
does not match the API schema.
 - configuration.win should be one of these:
   object { additionalCertificateFile?, appId?, artifactName?, asar?, asarUnpack?, certificateFile?, certificatePassword?, certificateSha1?, certificateSubjectName?, compression?, cscKeyPassword?, cscLink?, detectUpdateChannel?, electronUpdaterCompatibility?, extraFiles?, extraResources?, fileAssociations?, files?, forceCodeSigning?, generateUpdatesFilesForAllChannels?, icon?, legalTrademarks?, protocols?, publish?, publisherName?, releaseInfo?, requestedExecutionLevel?, rfc3161TimeStampServer?, sign?, signAndEditExecutable?, signDlls?, signingHashAlgorithms?, target?, timeStampServer?, verifyUpdateCodeSignature? } | null
   -> Options related to how build Windows targets.
   Details:
    * configuration.win has an unknown property 'title'. These properties are valid:
      object { additionalCertificateFile?, appId?, artifactName?, asar?, asarUnpack?, certificateFile?, certificatePassword?, certificateSha1?, certificateSubjectName?, compression?, cscKeyPassword?, cscLink?, detectUpdateChannel?, electronUpdaterCompatibility?, extraFiles?, extraResources?, fileAssociations?, files?, forceCodeSigning?, 
generateUpdatesFilesForAllChannels?, icon?, legalTrademarks?, protocols?, publish?, publisherName?, releaseInfo?, requestedExecutionLevel?, rfc3161TimeStampServer?, sign?, signAndEditExecutable?, signDlls?, signingHashAlgorithms?, target?, timeStampServer?, verifyUpdateCodeSignature? }
    * configuration.win has an unknown property 'msi'. These properties are valid:
      object { additionalCertificateFile?, appId?, artifactName?, asar?, asarUnpack?, certificateFile?, certificatePassword?, certificateSha1?, certificateSubjectName?, compression?, cscKeyPassword?, cscLink?, detectUpdateChannel?, electronUpdaterCompatibility?, extraFiles?, extraResources?, fileAssociations?, files?, forceCodeSigning?, 
generateUpdatesFilesForAllChannels?, icon?, legalTrademarks?, protocols?, publish?, publisherName?, releaseInfo?, requestedExecutionLevel?, rfc3161TimeStampServer?, sign?, signAndEditExecutable?, signDlls?, signingHashAlgorithms?, target?, timeStampServer?, verifyUpdateCodeSignature? }
     How to fix:
     1. Open https://www.electron.build/configuration/win
     2. Search the option name on the page (or type in into Search to find across the docs).
       * Not found? The option was deprecated or not exists (check spelling).
       * Found? Check that the option in the appropriate place. e.g. "title" only in the "dmg", not in the root. 
  stackTrace=























                                                                   ValidationError: Invalid configuration object. electron-builder 22.3.2 has been initialised using a configuration object that does not match the API schema.   























                                                                    - configuration.win should be one of these:  























                                                                      object { additionalCertificateFile?, appId?, artifactName?, asar?, asarUnpack?, certificateFile?, certificatePassword?, certificateSha1?, certificateSubjectName?, compression?, cscKeyPassword?, cscLink?, detectUpdateChannel?, electronUpdaterCompatibility?, extraFiles?, extraResources?, fileAssociations?, files?, forceCodeSigning?, generateUpdatesFilesForAllChannels?, icon?, legalTrademarks?, protocols?, publish?, publisherName?, releaseInfo?, requestedExecutionLevel?, rfc3161TimeStampServer?, sign?, signAndEditExecutable?, signDlls?, signingHashAlgorithms?, target?, timeStampServer?, verifyUpdateCodeSignature? } | null























                                                                      -> Options related to how build Windows targets.























                                                                      Details:























                                                                       * configuration.win has an unknown property 'title'. These properties are valid:























                                                                         object { additionalCertificateFile?, appId?, artifactName?, asar?, asarUnpack?, certificateFile?, certificatePassword?, certificateSha1?, certificateSubjectName?, compression?, cscKeyPassword?, cscLink?, detectUpdateChannel?, electronUpdaterCompatibility?, extraFiles?, extraResources?, fileAssociations?, files?, forceCodeSigning?, generateUpdatesFilesForAllChannels?, icon?, legalTrademarks?, protocols?, publish?, publisherName?, releaseInfo?, requestedExecutionLevel?, rfc3161TimeStampServer?, sign?, signAndEditExecutable?, signDlls?, signingHashAlgorithms?, target?, timeStampServer?, verifyUpdateCodeSignature? }























                                                                       * configuration.win has an unknown property 'msi'. These properties are valid:























                                                                         object { additionalCertificateFile?, appId?, artifactName?, asar?, asarUnpack?, certificateFile?, certificatePassword?, certificateSha1?, certificateSubjectName?, compression?, cscKeyPassword?, cscLink?, detectUpdateChannel?, electronUpdaterCompatibility?, extraFiles?, extraResources?, fileAssociations?, files?, forceCodeSigning?, generateUpdatesFilesForAllChannels?, icon?, legalTrademarks?, protocols?, publish?, publisherName?, releaseInfo?, requestedExecutionLevel?, rfc3161TimeStampServer?, sign?, signAndEditExecutable?, signDlls?, signingHashAlgorithms?, target?, timeStampServer?, verifyUpdateCodeSignature? }























                                                                        How to fix:























                                                                        1. Open https://www.electron.build/configuration/win























                                                                        2. Search the option name on the page (or type in into Search to find across the docs).























                                                                          * Not found? The option was deprecated 
or not exists (check spelling).























                                                                          * Found? Check that the option in the appropriate place. e.g. "title" only in the "dmg", not in the root.















































                                                                       at validate (C:\Users\alexr\Documents\GitHub\attendant-app\app\node_modules\@develar\schema-utils\dist\validate.js:50:11)























                                                                       at validateConfig (C:\Users\alexr\Documents\GitHub\attendant-app\app\node_modules\app-builder-lib\src\util\config.ts:229:3)























                                                                       at Packager._build (C:\Users\alexr\Documents\GitHub\attendant-app\app\node_modules\app-builder-lib\src\packager.ts:342:5)























                                                                       at Packager.build (C:\Users\alexr\Documents\GitHub\attendant-app\app\node_modules\app-builder-lib\src\packager.ts:337:12)























                                                                       at executeFinally (C:\Users\alexr\Documents\GitHub\attendant-app\app\node_modules\app-builder-lib\node_modules\builder-util\src\promise.ts:12:14)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Chỉnh sửa số 2

Tôi hiện đang nhận được lỗi sau:

yarn run v1.22.0
warning package.json: No license field
$ electron-builder build
  • electron-builder  version=22.3.2 os=10.0.18363
  • loaded configuration  file=package.json ("build" field)
  • author is missed in the package.json  appPackageFile=C:\Users\alexr\Documents\GitHub\attendant-app\app\package.json
  • writing effective config  file=dist\builder-effective-config.yaml
  • packaging       platform=win32 arch=x64 electron=8.0.1 appOutDir=dist\win-unpacked
  • asar usage is disabled — this is strongly not recommended  solution=enable asar and use asarUnpack to unpack 
files that must be externally available
  ⨯ cannot execute  cause=exit status 1
                    errorOut=Fatal error: Unable to commit changes

                    command='C:\Users\alexr\AppData\Local\electron-builder\Cache\winCodeSign\winCodeSign-2.5.0\rcedit-x64.exe' 'C:\Users\alexr\Documents\GitHub\attendant-app\app\dist\win-unpacked\Attendant.exe' --set-version-string FileDescription Attendant --set-version-string ProductName Attendant --set-version-string LegalCopyright 'Copyright © 2020 Attendant' --set-file-version 1.1.0 --set-product-version 1.1.0.0 --set-version-string InternalName Attendant --set-version-string OriginalFilename '' --set-icon 'C:\Users\alexr\Documents\GitHub\attendant-app\app\dist\.icon-ico\icon.ico'
                    workingDir=
  ⨯ C:\Users\alexr\Documents\GitHub\attendant-app\app\node_modules\app-builder-bin\win\x64\app-builder.exe exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE  stackTrace=

                                                  Error: C:\Users\alexr\Documents\GitHub\attendant-app\app\node_modules\app-builder-bin\win\x64\app-builder.exe exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE

                                                      at ChildProcess.<anonymous> (C:\Users\alexr\Documents\GitHub\attendant-app\app\node_modules\app-builder-lib\node_modules\builder-util\src\util.ts:239:14)

                                                      at Object.onceWrapper (events.js:313:26)

                                                      at ChildProcess.emit (events.js:223:5)

                                                      at maybeClose (internal/child_process.js:1021:16)

                                                      at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)

                                                  From previous event:

                                                      at processImmediate (internal/timers.js:439:21)

                                                  From previous event:

                                                      at WinPackager.signApp (C:\Users\alexr\Documents\GitHub\attendant-app\app\node_modules\app-builder-lib\src\winPackager.ts:357:27)

                                                      at WinPackager.doPack (C:\Users\alexr\Documents\GitHub\attendant-app\app\node_modules\app-builder-lib\src\platformPackager.ts:243:16)

                                                      at WinPackager.pack (C:\Users\alexr\Documents\GitHub\attendant-app\app\node_modules\app-builder-lib\src\platformPackager.ts:114:5)

                                                      at Packager.doBuild (C:\Users\alexr\Documents\GitHub\attendant-app\app\node_modules\app-builder-lib\src\packager.ts:444:9)

                                                      at executeFinally (C:\Users\alexr\Documents\GitHub\attendant-app\app\node_modules\app-builder-lib\node_modules\builder-util\src\promise.ts:12:14)

                                                      at Packager._build (C:\Users\alexr\Documents\GitHub\attendant-app\app\node_modules\app-builder-lib\src\packager.ts:373:31)

                                                      at Packager.build (C:\Users\alexr\Documents\GitHub\attendant-app\app\node_modules\app-builder-lib\src\packager.ts:337:12)

                                                      at executeFinally (C:\Users\alexr\Documents\GitHub\attendant-app\app\node_modules\app-builder-lib\node_modules\builder-util\src\promise.ts:12:14)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

cảm ơn sự hỗ trợ cho đến nay


Bạn có cần cấu hình windows một mình hay không? và tôi hy vọng bạn không cần trình cài đặt. Đúng?
Gokulakannan T

Hãy thử con đường tuyệt đối thay vì con đường tương đối
Gokulakannan T

Câu trả lời:


9
"build": {
        "productName": "yourProductName",
        "appId": "org.yourProductName",
        "dmg": {
            "contents": [
                {
                    "x": 130,
                    "y": 220
                },
                {
                    "x": 410,
                    "y": 220,
                    "type": "link",
                    "path": "/Applications"
                }
            ]
        },
        "win": {
            "target": [
                "nsis",
                "msi"
            ]
        },
        "linux": {
            "target": [
                "deb",
                "rpm",
                "snap",
                "AppImage"
            ],
            "category": "Development"
        },
        "directories": {
            "buildResources": "resources",
            "output": "release"
        }
    },

Tôi đã đính kèm cấu hình electron-builder mà tôi đã cấu hình cho dự án của mình trước đây. Hãy xem xét phần này

"directories": {
    "buildResources": "resources",
    "output": "release"
}

buildResourcesnên bao gồm các tệp tài nguyên như biểu tượng. outputđang chỉ ra ứng dụng của bạn sẽ ở đâu sau khi xây dựng và nó là tùy chọn cho vấn đề của bạn.

Trong dự án của tôi, tôi đang lưu các biểu tượng vào thư mục gốc của dự án như thế này. Tôi không biết tệp biểu tượng của bạn ở đâu nên tôi đã đính kèm cấu trúc dự án đang hoạt động với cấu hình bản dựng này.

nhập mô tả hình ảnh ở đây


cảm ơn đã trả lời, tôi hiện đang nhận được lỗi sau:⨯ Application entry file "main.js" in the "C:\Users\alexr\Desktop\app-test\release\win-unpacked\resources\app.asar" does not exist. Seems like a wrong configuration.
Alex Hawking

@Alex Hawking Vui lòng đảm bảo nếu main.js tồn tại trong thư mục gốc của bạn
tpikachu

Bạn có thể xem "chính": "main.js" tại
gói.json

Chính này sẽ chỉ ra electron main.js
tpikachu

Tôi có "main": "main.js"trong gói.json và tệp main.js của mình trong cùng thư mục với Sợi.lock (thư mục chính)
Alex Hawking

2

Tôi vừa xem qua nhật ký của bạn, tôi thấy lỗi dưới đây,

configuration.win has an unknown property 'title'. These properties are valid:

Tiêu đề của ứng dụng nên được đưa ra trong productNametài sản. Các titletừ khóa không hợp lệ theo tài liệu .

Ngoài ra, tôi đã tìm ra buildResourcesrằng đó là thiếu trong cấu hình xây dựng. Tôi khuyên bạn nên sử dụng .icotập tin cho các biểu tượng thay vì pnghình ảnh.

"scripts": {
    "start": "electron .",
    "pack": "electron-builder --dir",
    "dist": "electron-builder build"
},
"build": {
    "productName": "Attendant",
    "appId": "com.experiment.attendant",
    "directories": {
        "buildResources": "build"
    },
    "files": [
      "build/**/*",
    ],
    "win": {
        "asar": false,
        "target": "nsis",
        "icon": "build/icon.ico"
    },
    "nsis": {
      "installerIcon": "build/icon.ico",
      "installerHeaderIcon": "build/icon.ico",
      "deleteAppDataOnUninstall": true
    },
}

Để biết thêm cấu hình,

  1. Cấu hình chung
  2. Cấu hình Windows

Xem ví dụ làm việc cho các cấu hình windows và Linux. GITHUB


Thật không may, tôi vẫn nhận được lỗi
Alex Hawking

@AlexHawking Nhật ký lỗi đã cho là không đủ. Thêm nhật ký sự cố đầy đủ, có thể giúp chúng tôi tìm ra vấn đề.
Gokulakannan T

Lệnh nào bạn đang chạy trong khi gặp lỗi?
Gokulakannan T

Tôi đang chạyyarn dist
Alex Hawking

@AlexHawking, bạn có thể chỉnh sửa câu hỏi của bạn với nhật ký thiết bị đầu cuối đầy đủ không?
Gokulakannan T
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.