一、node-webkit 是什么

Github仓库

NW.js 是一个基于Chromium和的应用程序运行时node.js。您可以使用 NW.js 以 HTML 和 JavaScript 编写本机应用程序。它还允许您直接从 DOM 调用 Node.js 模块,并支持使用所有 Web 技术编写本机应用程序的新方法。

简单的说:平时开发页面时打开是使用浏览器打开的,但通过node-webkit打包后,项目就不用依赖浏览器,内部已经集合了浏览器内核,跟想一款桌面APP

二、安装 node-webkit

下载地址:国外 - 国内

yarn打包前端项目 前端打包app工具_json


解压文件,即可使用

yarn打包前端项目 前端打包app工具_前端_02

三、打包项目并配置

yarn打包前端项目 前端打包app工具_yarn打包前端项目_03

  • package.json 配置信息如下
{
    "main": "index.html", // 配置项目起始页
    “name”: "nw-demo", // 应用取个唯一的名称(任意)
    ”description“: "项目描述信息", // 项目描述信息
    “version”: "0.0.1", // 定义版本号
    "keywords": ["demo", "node-webkit"], // 项目关键字
    "window": {
        "title": "如果 index.html 没有设置 title,则会显示这里的值",
        "icon": "./logo.png", // 图标路径
        "position": "center", // 客户端唤醒窗口所在位置
        ”width“: "680", // 客户端唤醒窗口宽度
        ”height“: "420", // 客户端唤醒窗口高度
        ”toolbar“: true, // 是否显示工具栏(调试阶段)
        ”frame“: true, // 是否显示最外层框架(窗口最小化、最大化、关闭)
        ”resizable“: true, // 是否设置可伸缩
        ”min_width“: "640", // 最小宽度
        ”min_height“: "200", // 最小高度
        "max_width": "1200", // 最大宽度
        ”max_height“: "600", // 最大高度
        "always_on_top": true, // 是否始终显示在最上层
        ”fullscreen“: true, // 是否全屏
    }
}

压缩文件(index.html,package.json,logo.png)并将app.zip重命名为后缀名为.nw

yarn打包前端项目 前端打包app工具_前端_04


启动项目

  • 第一种方法

yarn打包前端项目 前端打包app工具_webkit_05

  • 第二种方法:将app.nw移动到跟 nw.exe 同一级目录中,并cmd 进入改目录

    此时在该目录下会生成 app.exe,打开即可直接运行

前两种方法效果图

yarn打包前端项目 前端打包app工具_json_06


两种方法有一个弊端:就是必须依赖 node-webkit(一旦没有该环境就不能运行)即将 app.exe发送给其他人,别人无法运行该项目

由此,Enigma Virtual Box 就派送用场了。

四、安装 Enigma Virtual Box

Enigma Virtual Box 官网

yarn打包前端项目 前端打包app工具_前端_07

yarn打包前端项目 前端打包app工具_javascript_08

打开 enigmavb.exe

yarn打包前端项目 前端打包app工具_yarn打包前端项目_09

yarn打包前端项目 前端打包app工具_前端_10

yarn打包前端项目 前端打包app工具_json_11


app_boxed.exe发生给别人就可以运行了。但这种方法有一个弊端就是体积过大。

五、打包 vue 项目

进入项目,执行命令npm run build,生成的 dist文件夹就等价于前面提到的app文件夹,再增加一个配置文件package.json即可。