js做一个exe安装程序

在本文中,我们将探讨使用 JavaScript (Node.js) 来制作一个简单的 Windows 平台的可执行安装程序 (EXE)。在开始之前,确保你已经安装了 Node.js。以下是依赖项和工具的清单:

1. Node.js:JavaScript运行时环境,可从以下网址下载并安装:https://nodejs.org/

2. pkg:一个命令行工具,用于将Node.js应用程序打包为可执行文件(包括.js和.json等资源文件)

3. Inno Setup:一个流行的免费软件脚本驱动的安装包制作工具,用于将打包好的EXE文件制作成安装程序。

## 第1步:设置Node.js项目

首先,创建一个新的目录来存放项目文件。接下来,打开命令提示符(在项目目录中),运行以下命令来初始化项目:

```bash

npm init

```

跟随提示完成项目设置。这将在项目根目录中生成一个 `package.json` 文件。

## 第2步:编写应用逻辑

在项目根目录中创建一个名为 `index.js` 的文件,这将是应用程序的入口文件。在这里,你可以编写任何自定义的 JavaScript 逻辑来处理你的安装程序所需的操作。例如,你可以将配置文件拷贝至指定文件夹,添加快捷方式等。以下是一个简单的示例:

```javascript

const fs = require('fs');

const path = require('path');

const os = require('os');

const appDirectory = path.join(os.homedir(), 'MyApp');

if (!fs.existsSync(appDirectory)) {

fs.mkdirSync(appDirectory);

}

const configFileSrc = path.join(__dirname, 'config.json');

const configFileDest = path.join(appDirectory, 'config.json');

fs.copyFileSync(configFileSrc, configFileDest);

console.log('Installation completed successfully!');

```

在这个示例中,我们创建了一个名为 "MyApp" 的目录(如果尚不存在),并将名为 "config.json" 的配置文件从项目目录复制到新创建的目录中。

## 第3步:打包应用程序

现在安装好 `pkg` 依赖。在命令提示符中键入以下命令:

```bash

npm install -g pkg

```

这将全局安装 `pkg` 包。然后,运行以下命令以将 `index.js` 打包成 Windows 平台的执行文件 (EXE):

```bash

pkg index.js --targets node14-win-x64 --output installer.exe

```

这将在项目目录中生成名为 `installer.exe` 的可执行文件。

## 第4步:使用Inno Setup创建安装程序

首先,从以下网址下载并安装 Inno Setup:https://www.jrsoftware.org/isdl.php

在 Inno Setup 中,创建一个新的脚本并填写有关项目的基本信息。然后,添加以下安装设置:

- OutputBaseFilename:安装程序的文件名(例如:MyAppInstaller)。

- OutputDir:设置生成的安装程序文件的输出目录。

- DefaultDirName:应用程序安装的默认目录(例如:`{pf}\MyApp`)。

- Compression:设置压缩类型(如:`lzma`)来减少生成的文件大小。

在 "Files" 部分添加以下条目:

```

[Files]

Source: "path\to\installer.exe"; DestDir: "{app}"; Flags: ignoreversion

```

这将 `installer.exe` 文件添加到安装程序中。当使用这个安装文件进行安装时,`installer.exe` 应程序会被复制到目标计算机的应用程序文件夹中。

接下来,编译安装程序。打开 "Build" 菜单,选择 "Compile"。如果配置正确,Inno Setup将生成一个名为 "MyAppInstaller.exe" 的安装程序。

至此,你已经成功使用 JavaScript (Node.js) 创建了一个Windows平台的EXE安装程序。用户可以下载此安装程序并安装您的应用。