Grunt打包Electron,生成exe的安裝包


在之前的博客:3、electron打包生成exe文件

我們已經得到了electron打包好的應用了,目錄如下,但是我們如何整合成一個安裝程序,發給客戶使用呢?

我們可以使用grunt-electron-installer來生成

一. 准備

    安裝grunt-electron-installer。

    1. 我們進入到HelloWorld-win32-x64的父級目錄下。

    2. 新建一個package.json,內容如下:

{
"name": "HelloWorld",
"version": "1.0.0" 
}

3. 在上面的路徑下打開DOC窗口,打開命令行,輸入npm install grunt-electron-installer --save-dev安裝grunt-electron-installer模塊

npm install grunt-electron-installer --save-dev


    4.接着輸入npm install grunt --save-dev安裝grunt

npm install grunt --save-dev


    執行完之后,我們的目錄結構如下:

在上面的目錄下新建Gruntfile.js文件,內容如下:

  關於Gruntfile.js一些配置信息如下:

    注:如要設置圖標iconUrl,圖標必須是網絡連接,不能是路徑

           應用圖標iconUrl和安裝程序的圖標setupIcon都必須是ico格式的文件,不能為其他。我們可以在下面鏈接進行圖片的格式轉換

            http://www.bitbug.net/

二. 配置生成桌面快捷方式

    配置app添加監聽並生成快捷方式

  找到我們應用程序index.js添加如下代碼:

 

//grunt 生成快捷方式
var path = require('path');
var handleStartupEvent = function () {
    if (process.platform !== 'win32') {
        return false;
    }

    var squirrelCommand = process.argv[1];

    switch (squirrelCommand) {
        case '--squirrel-install':
        case '--squirrel-updated':
            install();
            return true;
        case '--squirrel-uninstall':
            uninstall();
            app.quit();
            return true;
        case '--squirrel-obsolete':
            app.quit();
            return true;
    }
    // 安裝
    function install() {
        var cp = require('child_process');
        var updateDotExe = path.resolve(path.dirname(process.execPath), '..', 'update.exe');
        var target = path.basename(process.execPath);
        var child = cp.spawn(updateDotExe, ["--createShortcut", target], { detached: true });
        child.on('close', function(code) {
            app.quit();
        });
    }
    // 卸載
    function uninstall() {
        var cp = require('child_process');
        var updateDotExe = path.resolve(path.dirname(process.execPath), '..', 'update.exe');
        var target = path.basename(process.execPath);
        var child = cp.spawn(updateDotExe, ["--removeShortcut", target], { detached: true });
        child.on('close', function(code) {
            app.quit();
        });
    }

};

if (handleStartupEvent()) {
    return;
}

添加之后在下面目錄打開DOS執行npm run-script package得到out目錄:

 

三. 打包

    准備工作都完成之后,HelloWorld-win32-x64的父級目錄如下,我們在執行grunt就可以了(執行中,最好退出360等軟件,可能會造成干擾)。

報錯:

如果有的同學運行grunt報錯:

你需要先將Grunt命令行(CLI)安裝到全局環境中。

npm install -g grunt-cli 

上述命令執行完后,grunt 命令就被加入到你的系統路徑中了,以后就可以在任何目錄下執行此命令了。

   在目錄下,會生成一個installer的文件夾,如下:

    setup.exe就是安裝程序了。

會有一個默認的安裝等待動畫:

 安裝成功之后,桌面生成了我們的快捷方式

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM