(一)基本程序结构

如上图,是一个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的完整参数。每个参数配置都标有注释。

  1. {
  2. /**指定程序的起始页面。*/
  3. "main": "index.html",
  4. /**字符串必须是小写字母或者数字,可以包含.或者_或者-不允许带空格。name必须全局唯一。*/
  5. "name": "demo",
  6. /**程序描述*/
  7. "description": "demo app of node-webkit",
  8. /**程序版本号*/
  9. "version": "0.1.0",
  10. /**关键字*/
  11. "keywords": ["demo","node-webkit"],
  12. /**bool值,如果设置为false,将禁用webkit的node支持。*/
  13. "nodejs": true,
  14. /**
  15. * 指定一个node.js文件,当程序启动时,该文件会被运行,启动时间要早于node-webkit加载html的时间。
  16. * 它在node上下文中运行,可以用它来实现类似后台线程的功能。
  17. * (不需要可注释不用)
  18. */
  19. //"node-main": "js/node.js",
  20. /**
  21. * bool值。默认情况下,如果将node-webkit程序打包发布,那么只能启动一个该应用的实例。
  22. * 如果你希望允许同时启动多个实例,将该值设置为false。
  23. */
  24. "single-instance": true,
  25. /**窗口属性设置 */
  26. "window": {
  27. /**字符串,设置默认title。*/
  28. "title": "demo",
  29. /**窗口的icon。*/
  30. "icon": "link.png",
  31. /**bool值。是否显示导航栏。*/
  32. "toolbar": false,
  33. /**bool值。是否允许调整窗口大小。*/
  34. "resizable": true,
  35. /**是否全屏*/
  36. "fullscreen": false,
  37. /**是否在win任务栏显示图标*/
  38. "show_in_taskbar": true,
  39. /**bool值。如果设置为false,程序将无边框显示。*/
  40. "frame": true,
  41. /**字符串。窗口打开时的位置,可以设置为“null”、“center”或者“mouse”。*/
  42. "position": "center",
  43. /**主窗口的的宽度。*/
  44. "width": 800,
  45. /**主窗口的的高度。*/
  46. "height": 670,
  47. /**窗口的最小宽度。*/
  48. "min_width": 400,
  49. /**窗口的最小高度。*/
  50. "min_height": 335,
  51. /**窗口显示的最大宽度,可不设。*/
  52. "max_width": 800,
  53. /**窗口显示的最大高度,可不设。*/
  54. "max_height": 670,
  55. /**bool值,如果设置为false,启动时窗口不可见。*/
  56. "show": true,
  57. /**是否在任务栏显示图标。*/
  58. "show_in_taskbar":true,
  59. /**
  60. * bool值。是否使用kiosk模式。如果使用kiosk模式,
  61. * 应用程序将全屏显示,并且阻止用户离开应用。
  62. * */
  63. "kiosk": false
  64. },
  65. /**webkit设置*/
  66. "webkit": {
  67. /**bool值,是否加载插件,如flash,默认值为false。*/
  68. "plugin": true,
  69. /**bool值,是否加载Java applets,默认为false。*/
  70. "java": false,
  71. /**bool值,是否启用页面缓存,默认为false。*/
  72. "page-cache": false
  73. }
  74. }

在上面的配置中,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配置说明的更多相关文章

  1. 微信小程序:全局配置app.json

    微信小程序:全局配置app.json 一.全局配置app.json app.json文件用来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. 以下是一个包 ...

  2. 微信小程序:页面配置 page.json

    微信小程序:页面配置 page.json 一.页面配置 page.json 如果整个小程序的风格是蓝色调,那么可以在 app.json 里边声明顶部颜色是蓝色即可. 实际情况可能不是这样,可能你小程序 ...

  3. nw.js开发第一个程序(html开发桌面程序exe)

    一.环境配置 windows系统 cnpm install node 下载nw.js https://github.com/nwjs/nw.js 找到download下载合适的版本 二.开发 项目目录 ...

  4. 微信小程序 - 结构目录 | 配置介绍

    结构目录 小程序框架提供了自己的视图层描述语言 WXML 和 WXSS,以及 JavaScript,并在视图层与逻辑层间提供了数据传输和事件系统,让开发者能够专注于数据与逻辑. 一.小程序文件结构和传 ...

  5. node --save可以省略掉手动修改package.json的步骤

    当你为你的模块安装一个依赖模块时,正常情况下你得先安装他们(在模块根目录下npm install module-name),然后连同版本号手动将他们添加到模块配置文件package.json中的依赖里 ...

  6. NW.js 简介与使用

    简介 (1)以网络最流行的技术编写原生应用程序的新方法 (2)基于HTML5, CSS3, JS and WebGL而编写 (3)完全支持nodejs所有api及第三方模块 (4)可以使用DOM直接调 ...

  7. Node.js NPM Package.json

    章节 Node.js NPM 介绍 Node.js NPM 作用 Node.js NPM 包(Package) Node.js NPM 管理包 Node.js NPM Package.json Nod ...

  8. nw.js桌面程序自动更新(node.js表白记)

    Hello Google Node.js 一个基于Google V8 的JavaScript引擎. 一个伟大的端至端语言,或许我对你的热爱源自于web这门极富情感的技术吧! 注: 光阴似水,人生若梦, ...

  9. node webkit (nw.js) 无法调试的结局方案之一

    之前做过nw项目,当时主要内容是由别人做的!过后回到家中,自己研究了下这方面.结果发现我自己写的nw 客户端不可以调试!在网上各种找办法,没找到,深感绝望,突然看到 (https://github.c ...

随机推荐

  1. wex5 如何使用蓝牙 ble

    使用蓝牙插件   需要在js中添加 require("cordova!cordova-plugin-ble-central"); ble插件具体文档: http://docs.we ...

  2. pip 安装超时解决方案

    已经使用梯子,安装某依赖时仍然超时. 首先检查pip的版本是否需要更新,如果不是最新版本运行命令更新: python -m pip install --upgrade pip 如果仍然超时错误,则运行 ...

  3. oracle分页查询按日期排序失败问题

    今天对已经上线的代码进行测试,结果发现分页是失效的,一度怀疑是前台页面分页失效,排查后发现是分页sql有问题,分页sql按日期排序,导致分页失败. 按日期排序,会造成相同的数据重复出现. 解决方案:在 ...

  4. python子进程模块subprocess详解

    subprocess--子进程管理器一.subprocess 模块简介subprocess最早是在2.4版本中引入的.subprocess模块用来生成子进程,并可以通过管道连接它们的输入/输出/错误, ...

  5. SpringBootMVC02——SpringDataJpa与ThymeLeaf

    大纲 - SpringDataJpa进阶使用- SpringDataJpa自定义查询- 整合Servlet.Filter.Listener- 文件上传- Thymeleaf常用标签 1.整合Servl ...

  6. php正则表达式修饰符详解

    preg_match_all("/(.+)<\/form>/isU" , $string, $result); 这里/ 后面加了 3个修饰符 i 是 不区分大小写的匹配 ...

  7. http知识总结

    layout: '''http' title: 知识整理' date: 2019-06-09 17:07:20 tags: --- 简介 超文本传输​​协议(HTTP)是用于传输诸如HTML的超媒体文 ...

  8. [易学易懂系列|rustlang语言|零基础|快速入门|(3)|所有权Ownership]

    今天我们来讲讲rust最难,也是最重要的概念: Ownership,Borrowing,Lifetimes 首先我们来看看:ownership(所有权) 我们来看看下面的代码: let a = [1, ...

  9. Python-一些总结

    背景 主要是用来记录我在学习python过程中学习到他人的一些建议和自己的经验,有些内容可能并不妥,如果有请及时通知我纠正,谢谢.qq:472668561 我使用的python版本是3.7.4. 内容 ...

  10. Kendo UI使用教程:入门指南

    [Kendo UI最新试用版下载] Kendo UI目前最新提供Kendo UI for jQuery.Kendo UI for Angular.Kendo UI Support for React和 ...