如何正确地将电子nodejs程序构建为.exe?

时间:2018-08-31 17:33:09

标签: node.js npm electron

我正在使用Electron v2.0.8,Node v8.9.3,npm 6.4.1。我使用html,css,js和npm创建了一个简单的“ Hello world”程序。

当我cd进入程序目录和npm start时,该程序运行正常。但是,当使用electron-packager <sourcedir> <appname> --platform="win32"构建(打包)该消息时,“ sweetalert”不会显示其消息,而在使用npm start时会显示该消息。但是按钮的功能与预期相同。 (“清除文本字段”)

我怀疑这与文件路径或其他内容有关,但是对于整个框架来说,这是我的头绪,对此我一无所知。

我不知道我的整个“创建.exe方法”是否正确100%。我尝试过电子伪造,但是它给出了很多错误,所以我放弃了,改用电子包装机。没有任何在线帮助对我有用(我相信由于版本不同)请有人帮忙。

2 个答案:

答案 0 :(得分:4)

对于其他面临类似问题的人。实际上我的程序是正确构建的,代码中没有错误。

发生的是文件路径配置不正确。当我手动复制必要的文件以使“ sweetalert”运行时,它显示了该消息。因此,没有针对Sweetalert的错误。

无论如何,我必须找到一种解决“路径”问题的方法。

更新:

添加代码

"extraFiles": [
    "folder_to_be_included_in_build"
  ],
现在

进入 package.json 文件,即可在“构建”应用程序期间复制所需的文件夹。现在无需将文件夹手动复制到内部版本。

答案 1 :(得分:2)

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的文件夹