如何将vue项目部署/分发为桌面应用程序

时间:2017-11-12 18:56:54

标签: javascript web vuejs2 electron desktop

我有一个在VueJS中制作的项目。我从new ArrayList<>(yourWord.toCharArray()开始,几乎完成了代码。截至vue cli我已使用 static 文件夹和 index.html 创建了npm run build文件夹。现在我想要的是将网络应用转换为桌面应用。似乎电子是我需要的。但是,在搜索到这里和那里的指令后,我无法弄清楚从哪里开始。

2 个答案:

答案 0 :(得分:2)

我过去使用过的一些东西......

还有其他人,但我说pkg最容易用于创建单个可执行文件,但它会创建最大的文件。 Nexe需要根据您的依赖性进行设置。与单个编译命令相比,nwjs和电子的设置稍微复杂一些,但它们确实为您提供了更多选项。

答案 1 :(得分:1)

我用电子制作桌面应用。 (https://electron.atom.io/

请按照电子基本设置的步骤进行操作:

1)使用命令

全局安装电子
npm install electron -g

2)在package.json

中添加

app.js 作为条目文件

<强>的package.json

"main": "app.js",
"scripts": {
"start": "electron ."
 },
"bin" : "./bin/my-bin.js"

3) app.js

// Electron Desktop app

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

let win;

function createWindow() {

win = new BrowserWindow({ icon: __dirname + '/images/brw.PNG', show: false 
})
win.maximize()
win.show()

win.loadURL(url.format({
    pathname: path.join(__dirname, 'index.html'), //path to your index.html
    protocol: false,
    slashes: true
}));

win.webContents.openDevTools();

win.on('closed', () => {
    win = null;
});

}



app.on('ready', createWindow);

4)在app / my-bin.js目录中添加 my-bin.js

<强>斌/我的-bin.js

#!/usr/bin/env node

var join = require('path').join
var childProcess = require('child_process');
var args = process.argv.slice(2);

 args.unshift(__dirname + '/../'); 

childProcess.exec('npm start', (err, stdout) => {
if (err) console.log(err);
console.log(stdout);
})

5)然后,在当前工作目录中,

执行

npm start

是的,它将打开您的桌面应用程序窗口。

干杯!!

注意:您可以在package.json中没有“bin”条目的情况下开发它,但是如果您希望打包应用程序usig zeit / pkg,则需要它,因为它从bin条目读取

pkg用于制作可分发的可执行文件,我们可以在没有源代码的情况下创建可执行文件。(隐藏源代码)。但目前使用pkg https://github.com/zeit/pkg/issues/52

分发电子应用程序存在问题