node-inno

1.0.7 • Public • Published

一个基于innosetup的 nodejs自动化打包工具,通过json配置,可灵活定制安装界面和安装流程,为nwjs、electron或者其他应用进行exe的打包。

screenshot

screenshot

npm

npm

npm install node-inno

how to use

create build directory

Create the build directory in the root directory.

|-xxx
|-build
  |-inno-resource //non-essential. pictures of the installation package
  | |-bg.png
  | |-...
  |
  |-build.json
 

config build.json

{
    "installDetail": {
        "createShortcut": true,
        "startupOnFinish": true,
        "startupOnBootstrap": true,
        "agreeLicense": true,
        "installPath": "",
        "checkUninstallBeforeInstall":true,
        "requireUninstallBeforeInstall":false,
        "defaultInstallDir": "C:\\Program Files (x86)\\node-inno",
        "installerOutputDir": "C:/Users/cnlia/Desktop"
    },
    "app": {
        "id": "TakeColor 1.0.0",
        "name": "TakeColor",
        "version": "",
        "publisher": "maker",
        "mainPage": "",
        "comments": "myapp_installer",
        "exe": "build/app/TakeColor.exe",
        "package": "build/app/*"
    },
    "registry": [{
        "root": "HKCR",
        "subkey": "test\\DefaultIcon",
        "type": "string",
        "name": "URL Qiaoker Protocol",
        "value": "{app}\\test.exe",
        "flags": "CreateValueIfDoesntExist"
    }],
    "ui": {
        "encoding": "gbk",
        "fontName": "Microsoft YaHei",
        "clientWidth": 800,
        "clientHeight": 500,
        "checkboxSize":16,
        "uninstallMsgbox": {
            "text": "检测到已经安装xxxxx,安装前是否卸载HTML DOM confirm()",
            "color":"000000",
            "fontSize":16,
            "width":520,
            "height":430,
 
            "textTop":249,
            "textLeft":65,
            "textWidth":400,
            "textHeight":60,
 
            "btnOkTop":318,
            "btnOkLeft":275,
            "btnOkWidth":160,
            "btnOkHeight":60,
 
            "btnCancelTop":318,
            "btnCancelLeft":85,
            "btnCancelWidth":160,
            "btnCancelHeight":60
        },
        "checkTaskMsgbox": {
            "text": "检测到xxx正在运行,是否结束任务",
            "color":"000000",
            "fontSize":16,
            "width":520,
            "height":430,
 
            "textTop":249,
            "textLeft":65,
            "textWidth":400,
            "textHeight":60,
 
            "btnOkTop":318,
            "btnOkLeft":275,
            "btnOkWidth":160,
            "btnOkHeight":60,
 
            "btnCancelTop":318,
            "btnCancelLeft":85,
            "btnCancelWidth":160,
            "btnCancelHeight":60
        },
        "htmlAdBar": {
            "top": 0,
            "left": 0,
            "width": 800,
            "height": 350,
            "show": false
        },
        "simpleAdBar": {
            "images": [],
            "interval": 5000,
            "top": 0,
            "left": 0,
            "width": 800,
            "height": 350,
            "timeInterval": 3000,
            "show": true
        },
        "licenseText": {
            "text": "许可协议",
            "top": 482,
            "left": 172,
            "color": "FF8833",
            "show": true
        },
        "licenseCheckbox": {
            "text": "已经阅读",
            "top": 478,
            "left": 91,
            "checked": true,
            "show": true,
            "color": "000000"
        },
        "createShortcutCheckbox": {
            "text": "创建桌面快捷方式",
            "top": 478,
            "left": 465,
            "checked": true,
            "show": true,
            "color": "000000"
        },
        "startupOnFinishCheckbox": {
            "text": "立即运行程序",
            "top": 478,
            "left": 352,
            "checked": true,
            "show": true,
            "color": "000000"
        },
        "startupOnBootstrapCheckbox": {
            "text": "开机启动",
            "top": 478,
            "left": 253,
            "checked": true,
            "show": true,
            "color": "000000"
        },
        "installDirInput": {
            "top": 429,
            "left": 154,
            "height": 35,
            "width": 400,
            "color": "000000",
            "show": true,
            "fontSize":14,
            "enabled":false
        },
        "installDirBrowserButton": {
            "top": 429,
            "left": 553,
            "height": 35,
            "width": 80,
            "show": true
        },
        "cancleInstallMsgbox": {
            "text": "确定取消安装吗?",
            "show": true
        },
        "progressBar": {
            "top": 435,
            "left": 50,
            "width": 700,
            "height": 20,
            "show": true
        },
        "progressText": {
            "top": 390,
            "left": 0,
            "width": 800,
            "height": 30,
            "color": "E78E0E",
            "show": true
        },
        "installButton": {
            "top": 365,
            "left": 274,
            "width": 230,
            "height": 50,
            "show": true
        },
        "finishText": {
            "text": "安装完毕",
            "top": 385,
            "left": 0,
            "width": 800,
            "height": 30,
            "color": "20ad11",
            "show": true
        },
        "finishButton": {
            "top": 428,
            "left": 275,
            "width": 250,
            "height": 50,
            "show": true
        },
        "minimizeButton": {
            "top": 4,
            "left": 755,
            "width": 16,
            "height": 16,
            "show": true
        },
        "closeButton": {
            "top": 4,
            "left": 779,
            "width": 16,
            "height": 16,
            "show": true
        }
    }
}

build

let { NodeInno } = require("node-inno");
NodeInno.build(config, (code)=>{
    
});

For more details, please refer to the demo under the source directory.

Package Sidebar

Install

npm i node-inno

Weekly Downloads

0

Version

1.0.7

License

ISC

Unpacked Size

60.5 MB

Total Files

455

Last publish

Collaborators

  • maker