Как правильно встроить программу nodejs электрона в .exe? - PullRequest
0 голосов
/ 31 августа 2018

Я использую Electron v2.0.8, Node v8.9.3, npm 6.4.1. Я создал простую программу «Hello world», используя html, css, js вместе с npm.

Программа работает очень хорошо, когда я cd в каталог программы и npm start. Но когда он собирается (упаковывается) с использованием electron-packager <sourcedir> <appname> --platform="win32", «sweetalert» не показывает свое сообщение , которое отображалось при использовании npm start. Но кнопки работают как положено. («Очищает текстовое поле»)

Я подозреваю, что это как-то связано с путями к файлам или чем-то еще, но, будучи новичком во всей этой среде, я понятия не имею.

Я не знаю, является ли весь мой «подход .exe» правильным на 100% или нет. Я пробовал с помощью электронной кузницы, но она дала так много ошибок, поэтому я отказался от нее и переключился на электронный упаковщик. Ни один из онлайн не помогает мне (я полагаю, из-за разных версий) Кто-то, пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 01 сентября 2018
package.json etc...
"repository": {
    "url": "https://github.com/your/repo.git",
    "type": "git"
},
"author": {
    "name": "Author name"
},
"main": "./afolder/main.js",
"build": {
    "productName": "The product name",
    "compression": "maximum",
    "files": [
        "./afolder",
        "./node_modules",
        "./package.json"
    ],
    "appId": "any.id.app",
    "asar": true,
    "win": {
        "icon": "./your/icon/path/icon.ico",
        "target": "nsis"
    },
    "nsis": {
        "oneClick": false,
        "installerIcon": "./afolder/your/icon/path/icon.ico",
        "uninstallerIcon": "./afolder/your/icon/path/icon.ico",
        "perMachine": false,
        "deleteAppDataOnUninstall": true,
        "artifactName": "${productName} ${os} ${arch} v${version} setup.exe",
        "allowToChangeInstallationDirectory": true,
        "createDesktopShortcut": true,
        "createStartMenuShortcut": true,
        "shortcutName": "ShortcutName"
    },
    "asarUnpack": [ 
        //remove this comment ... 
        //packages you want to include after install.
        //for e.g.
        "./node_modules/electron-window-state",
        "./node_modules/fs-extra",
        "./node_modules/7zip-bin"
    ],
    "npmRebuild": false,
    "nodeGypRebuild": false,
    "directories": {
        "output": "../installer/${productName} v${version} setup"
    }
},
"scripts": {
    "start": "electron .",
    "installer": "yarn build --x64"
},
package.json etc...
  1. Вам понадобится "npm установить электронно-строительную пряжу --save-dev"
  2. Исправьте файл package.json с указанным выше содержимым (измените productName и т. Д. В соответствии со своими требованиями)
  3. Запуск программы установки npm
  4. вы должны увидеть папку с именем installer, созданную в родительском каталоге
0 голосов
/ 31 августа 2018

Для всех, кто сталкивается с похожей проблемой. На самом деле моя программа была построена правильно, и в коде не было ошибок.

Произошло то, что пути к файлам были неправильно настроены. Когда я вручную скопировал необходимые файлы для запуска «sweetalert», появилось сообщение. Таким образом, нет ошибок, специфичных для подсластителя.

В любом случае мне нужно будет найти способ решить проблему с "путём".

UPDATE:

Добавление кода

"extraFiles": [
    "folder_to_be_included_in_build"
  ],

в файл package.json теперь копирует нужную папку во время "сборки" приложения. Теперь нет необходимости копировать папку вручную в сборку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...