nw.js node-webkit基本程序结构与配置package.json配置说明
(一)基本程序结构
如上图,是一个nw程序的基本组织结构,在根目录下有package.json(程序的配置文件)和index.html(可以是任意名称,应用的启动页面);js/css/resources分别是应用的样式、脚本、和资源文件(html、图片等);node_modules存放node.js的扩展组件。这只是一个通用的基本组织结构,实际项目的组织结构,不必一定按照此结构进行搭建,如项目使用的是js模块化编程require框架的。最终的组织结构以适应实际项目为准,但文件package.json和index.html必须放在根目录下。
(二)配置文件package.json
nw在启动应用程序时,首先要读取package.json文件,初始化基本属性,下面我们看看package.json的完整参数。每个参数配置都标有注释。
- {
- /**指定程序的起始页面。*/
- "main": "index.html",
- /**字符串必须是小写字母或者数字,可以包含.或者_或者-不允许带空格。name必须全局唯一。*/
- "name": "demo",
- /**程序描述*/
- "description": "demo app of node-webkit",
- /**程序版本号*/
- "version": "0.1.0",
- /**关键字*/
- "keywords": ["demo","node-webkit"],
- /**bool值,如果设置为false,将禁用webkit的node支持。*/
- "nodejs": true,
- /**
- * 指定一个node.js文件,当程序启动时,该文件会被运行,启动时间要早于node-webkit加载html的时间。
- * 它在node上下文中运行,可以用它来实现类似后台线程的功能。
- * (不需要可注释不用)
- */
- //"node-main": "js/node.js",
- /**
- * bool值。默认情况下,如果将node-webkit程序打包发布,那么只能启动一个该应用的实例。
- * 如果你希望允许同时启动多个实例,将该值设置为false。
- */
- "single-instance": true,
- /**窗口属性设置 */
- "window": {
- /**字符串,设置默认title。*/
- "title": "demo",
- /**窗口的icon。*/
- "icon": "link.png",
- /**bool值。是否显示导航栏。*/
- "toolbar": false,
- /**bool值。是否允许调整窗口大小。*/
- "resizable": true,
- /**是否全屏*/
- "fullscreen": false,
- /**是否在win任务栏显示图标*/
- "show_in_taskbar": true,
- /**bool值。如果设置为false,程序将无边框显示。*/
- "frame": true,
- /**字符串。窗口打开时的位置,可以设置为“null”、“center”或者“mouse”。*/
- "position": "center",
- /**主窗口的的宽度。*/
- "width": 800,
- /**主窗口的的高度。*/
- "height": 670,
- /**窗口的最小宽度。*/
- "min_width": 400,
- /**窗口的最小高度。*/
- "min_height": 335,
- /**窗口显示的最大宽度,可不设。*/
- "max_width": 800,
- /**窗口显示的最大高度,可不设。*/
- "max_height": 670,
- /**bool值,如果设置为false,启动时窗口不可见。*/
- "show": true,
- /**是否在任务栏显示图标。*/
- "show_in_taskbar":true,
- /**
- * bool值。是否使用kiosk模式。如果使用kiosk模式,
- * 应用程序将全屏显示,并且阻止用户离开应用。
- * */
- "kiosk": false
- },
- /**webkit设置*/
- "webkit": {
- /**bool值,是否加载插件,如flash,默认值为false。*/
- "plugin": true,
- /**bool值,是否加载Java applets,默认为false。*/
- "java": false,
- /**bool值,是否启用页面缓存,默认为false。*/
- "page-cache": false
- }
- }
在上面的配置中,main和name是必须的属性。其他简单明了的就大伙就直接看注释吧,博主主要讲讲几个比较难理解的参数配置。
(1)"node-main"配置:指定一个js文件,该js文件是启动程序时最早运行文件,在node-main脚本中还可以访问全局的“window”对象,它指向DOM窗口,但是如果页面导航发生变化,访问到的window对象也会发生变化。因为它执行时间要早于DOM加载,所以要等页面加载完毕,才能使用“window”对象。同时,在DOM页面中,可以通过process.mainModule来获取node-main信息。
(2)"single-instance"配置:简单地说,是指是否允许同时打开多个nw应用。
(3)"kiosk"配置:如果该配置设为ture,则显示为全屏模式并屏蔽关闭按钮,即该显示器将会一直停留在nw应用的显示界面,类似于银行的排队等待办理业务的取票机界面。
nw.js node-webkit基本程序结构与配置package.json配置说明的更多相关文章
- 微信小程序:全局配置app.json
微信小程序:全局配置app.json 一.全局配置app.json app.json文件用来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. 以下是一个包 ...
- 微信小程序:页面配置 page.json
微信小程序:页面配置 page.json 一.页面配置 page.json 如果整个小程序的风格是蓝色调,那么可以在 app.json 里边声明顶部颜色是蓝色即可. 实际情况可能不是这样,可能你小程序 ...
- nw.js开发第一个程序(html开发桌面程序exe)
一.环境配置 windows系统 cnpm install node 下载nw.js https://github.com/nwjs/nw.js 找到download下载合适的版本 二.开发 项目目录 ...
- 微信小程序 - 结构目录 | 配置介绍
结构目录 小程序框架提供了自己的视图层描述语言 WXML 和 WXSS,以及 JavaScript,并在视图层与逻辑层间提供了数据传输和事件系统,让开发者能够专注于数据与逻辑. 一.小程序文件结构和传 ...
- node --save可以省略掉手动修改package.json的步骤
当你为你的模块安装一个依赖模块时,正常情况下你得先安装他们(在模块根目录下npm install module-name),然后连同版本号手动将他们添加到模块配置文件package.json中的依赖里 ...
- NW.js 简介与使用
简介 (1)以网络最流行的技术编写原生应用程序的新方法 (2)基于HTML5, CSS3, JS and WebGL而编写 (3)完全支持nodejs所有api及第三方模块 (4)可以使用DOM直接调 ...
- Node.js NPM Package.json
章节 Node.js NPM 介绍 Node.js NPM 作用 Node.js NPM 包(Package) Node.js NPM 管理包 Node.js NPM Package.json Nod ...
- nw.js桌面程序自动更新(node.js表白记)
Hello Google Node.js 一个基于Google V8 的JavaScript引擎. 一个伟大的端至端语言,或许我对你的热爱源自于web这门极富情感的技术吧! 注: 光阴似水,人生若梦, ...
- node webkit (nw.js) 无法调试的结局方案之一
之前做过nw项目,当时主要内容是由别人做的!过后回到家中,自己研究了下这方面.结果发现我自己写的nw 客户端不可以调试!在网上各种找办法,没找到,深感绝望,突然看到 (https://github.c ...
随机推荐
- wex5 如何使用蓝牙 ble
使用蓝牙插件 需要在js中添加 require("cordova!cordova-plugin-ble-central"); ble插件具体文档: http://docs.we ...
- pip 安装超时解决方案
已经使用梯子,安装某依赖时仍然超时. 首先检查pip的版本是否需要更新,如果不是最新版本运行命令更新: python -m pip install --upgrade pip 如果仍然超时错误,则运行 ...
- oracle分页查询按日期排序失败问题
今天对已经上线的代码进行测试,结果发现分页是失效的,一度怀疑是前台页面分页失效,排查后发现是分页sql有问题,分页sql按日期排序,导致分页失败. 按日期排序,会造成相同的数据重复出现. 解决方案:在 ...
- python子进程模块subprocess详解
subprocess--子进程管理器一.subprocess 模块简介subprocess最早是在2.4版本中引入的.subprocess模块用来生成子进程,并可以通过管道连接它们的输入/输出/错误, ...
- SpringBootMVC02——SpringDataJpa与ThymeLeaf
大纲 - SpringDataJpa进阶使用- SpringDataJpa自定义查询- 整合Servlet.Filter.Listener- 文件上传- Thymeleaf常用标签 1.整合Servl ...
- php正则表达式修饰符详解
preg_match_all("/(.+)<\/form>/isU" , $string, $result); 这里/ 后面加了 3个修饰符 i 是 不区分大小写的匹配 ...
- http知识总结
layout: '''http' title: 知识整理' date: 2019-06-09 17:07:20 tags: --- 简介 超文本传输协议(HTTP)是用于传输诸如HTML的超媒体文 ...
- [易学易懂系列|rustlang语言|零基础|快速入门|(3)|所有权Ownership]
今天我们来讲讲rust最难,也是最重要的概念: Ownership,Borrowing,Lifetimes 首先我们来看看:ownership(所有权) 我们来看看下面的代码: let a = [1, ...
- Python-一些总结
背景 主要是用来记录我在学习python过程中学习到他人的一些建议和自己的经验,有些内容可能并不妥,如果有请及时通知我纠正,谢谢.qq:472668561 我使用的python版本是3.7.4. 内容 ...
- Kendo UI使用教程:入门指南
[Kendo UI最新试用版下载] Kendo UI目前最新提供Kendo UI for jQuery.Kendo UI for Angular.Kendo UI Support for React和 ...