Vue打包为exe文件,通常是将Vue项目生成的web应用嵌入到一个桌面应用中,通常使用Electron这个技术来实现。Electron通过整合了Chromium和Node.js,可以让您使用Vue创建一个具有本地功能的跨平台应用程序。
在这篇文章中,我们将介绍如何将Vue项目打包到Electron中,并介绍Vue项目的路由在桌面应用中的使用原理。
1. 创建Vue项目
首先确保安装了Node.js,然后使用Vue CLI(预先安装)创建一个新的Vue项目。
```bash
$ npm install -g @vue/cli
$ vue create my-vue-app
$ cd my-vue-app
```
2. 安装Electron依赖
接下来我们需要在Vue项目中安装Electron相关依赖。
```bash
$ npm install electron --save-dev
$ npm install electron-builder --save-dev
```
3. 新建`electron`入口文件
在项目根目录下创建一个名为`background.js`的文件。这个文件作为Electron的入口文件。
```javascript
const { app, BrowserWindow } = require('electron');
function createWindow() {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
});
win.loadFile('dist/index.html');
}
app.on('ready', createWindow);
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow();
}
});
```
4. 配置`vue.config.js`
在项目根目录下创建一个名为`vue.config.js`的文件,并在其中配置Electron。
```javascript
module.exports = {
pluginOptions: {
electronBuilder: {
mainProcessFile: "background.js",
builderOptions: {
appId: "com.example.app",
nsis: {
oneClick: false,
allowToChangeInstallationDirectory: true
},
win: {
icon: "public/app.ico"
},
dmg: {
contents: [
{
type: "link",
path: "/Applications",
x: 410,
y: 150
},
{
type: "file",
path: "${APP_PATH}",
x: 130,
y: 150
}
]
},
mac: {
icon: "public/app.icns"
},
linux: {
target: ["AppImage", "snap"],
category: "Development"
}
}
}
}
};
```
5. 修改路由模式
由于默认的Vue路由模式为`history`模式,在Electron中无法正常工作,我们需要将路由模式修改为`hash`模式。在`src/router/index.js`文件中修改:
```javascript
import Vue from 'vue';
import VueRouter from 'vue-router';
Vue.use(VueRouter);
const routes = [
// ...
];
const router = new VueRouter({
mode: 'hash', // 修改这行
base: process.env.BASE_URL,
routes
});
export default router;
```
6. 打包Vue项目
首先打包Vue项目,生成一个`dist`目录,包含了你的Vue项目生成的Web应用:
```bash
$ npm run build
```
7. 测试Electron应用
在本地使用Electron启动Vue项目进行测试。
```bash
$ npx electron background.js
```
8. 打包为exe文件
如果一切顺利,在项目根目录运行下面的命令,进行桌面应用打包。
```bash
$ npm run electron:build
```
打包完成后,在`dist_electron`目录下找到生成的exe文件。根据您的操作系统,它可能生成为.exe(Windows),.app(macOS)或.AppImage(Linux)文件。
通过Electron将Vue项目打包为exe文件后,Vue路由在桌面应用中的原理与在浏览器中相同。Electron实际上为Vue项目提供了一个Chromium浏览器环境,因此,路由和浏览器环境中的行为是一样的。只要将Vue Router的模式从`history`模式改为`hash`模式,即可在Electron应用中正常使用路由功能。