uniapp 打包exe

UniApp是一个非常流行的跨平台一体化的应用开发框架,它可以将一套代码编译到多个平台,包括Android、iOS、Web、微信小程序等。但UniApp并不直接支持将应用程序打包为可在桌面环境运行的exe文件。然而,我们可以使用其他工具绕过这个限制,并将UniApp项目打包成exe。

为了实现这一目标,我们可以考虑使用Electron。Electron是GitHub开源的一个使用Web技术创建原生程序的跨平台开发框架。它允许我们将HTML、CSS、JavaScript等Web技术构建的项目,编译成Windows、macOS或Linux的桌面应用程序。

在这篇文章中,我将向您介绍如何把UniApp项目打包成exe文件。我们会采用UniApp构建Web或H5项目,然后使用Electron将其打包为exe。以下是详细的步骤:

**1. 准备UniApp项目**

首先,您需要确保已经安装了HBuilderX或其他UniApp开发工具,并使用它创建了一个UniApp项目。您可以对项目进行修改,为其添加所需功能和页面。当您准备好为项目添加桌面应用支持时,请转到下一步。

**2. 构建Web/H5项目**

在HBuilderX内,点击菜单“发行”>“网站-H5”,选择您的项目。点击“发行”按钮,等待构建过程完成。这将生成一个Web版本的项目。

**3. 安装Electron**

在项目根目录中打开命令行终端,运行以下命令安装Electron:

```

npm init -y // 初始化一个 npm 项目

npm install electron --save-dev // 安装 electron

```

**4. 创建Electron入口文件**

在项目根目录下创建一个新文件,命名为`main.js`,并为其添加以下代码:

```js

const { app, BrowserWindow } = require('electron')

function createWindow () {

// 创建浏览器窗口

const win = new BrowserWindow({

width: 800,

height: 600,

webPreferences: {

nodeIntegration: true

}

})

// 加载WEB/H5项目文件

win.loadFile('unpackage/dist/build/h5/index.html')

}

app.whenReady().then(createWindow)

app.on('window-all-closed', () => {

if (process.platform !== 'darwin') {

app.quit()

}

})

app.on('activate', () => {

if (BrowserWindow.getAllWindows().length === 0) {

createWindow()

}

})

```

这是Electron应用程序的入口文件。上述代码将创建一个包含UniApp项目的浏览器窗口。

**5. 配置npm脚本**

修改项目根目录下的`package.json`文件,添加或更新`scripts`部分,使其包含如下内容:

```json

"scripts": {

"start": "electron ."

},

```

这样我们可以通过运行`npm start`命令打开Electron应用。

**6. 运行Electron应用**

在命令行终端中,运行命令`npm start`,启动Electron应用程序。您应该看到一个包含UniApp项目的桌面窗口。

**7. 打包exe文件**

要将Electron应用程序打包成exe文件,我们需要安装`electron-builder`:

```

npm install electron-builder --save-dev

```

然后,更新`package.json`文件,添加如下内容:

```json

"build": {

"appId": "your.app.id",

"productName": "YourAppName",

"directories": {

"output": "build"

},

"win": {

"target": [

"nsis"

]

},

"nsis": {

"installerIcon": "yourAppIcon.ico",

"uninstallerIcon": "yourAppIcon.ico",

"installerHeaderIcon": "yourAppIcon.ico"

}

},

"scripts": {

"start": "electron .",

"pack": "electron-builder --dir",

"dist": "electron-builder"

}

```

在`your.app.id`和`YourAppName`处,请使用您自己的应用程序ID和名称。同时,请将`yourAppIcon.ico`替换为您自己的图标文件。

现在,您可以通过运行命令`npm run dist`在`build`文件夹内为您的应用生成exe文件。然后,您可以将生成的安装程序分发给他人进行安装和使用。

如上所述,尽管UniApp本身不提供直接打包为exe的功能,但我们可以借助Electron实现这个功能。这将使您的UniApp项目能够覆盖更多的平台和用户。