怎么将网页打包成桌面应用(web前端页面
在 HTML5的崛起、要一统天下之际,有一个名为【跨平台】的技术越来越火。为什么会这么火?因为软件开发者只需一次编写程序,即可在 Windows、Linux、Mac、IOS、Android 等平台运行,大大降低了程序员的工作量,也使公司的产品可以快读迭代。曾经跨平台技术的不被看好,如今随着手机、电脑硬件的发展而快速发展。这一切,几乎由HTML5技术推动,当然, 这个语言,是*的功臣。
基于 HTML5 的跨平台技术比较出名的有 PhoneGap、Cordova,常常用于开发 webapp;还有 Egret、Cocos-creator、Unity 等,常用于开发游戏;还有基于 Node.js 的 nw.js,用于开发桌面应用,以及 Electron,一款比 nw.js 还强大的用网页技术来开发桌面应用的神器。
其实,以上都是废话,现在进入主题:怎么用 Electron 将网页打包成 exe 可执行文件!
假设:
1、你已经安装并配置好了 node.js (全局安装)
2、你已经用 npm 安装了 electron (全局安装)
3、你已经写好了前端网页(html、css、 这些,或者基于这些的前端框架写好的网页)
4、以上三点看不懂的,赶紧去百度。。。
你如果具备了以上的假设,请继续往下看:
1、找到你的前端网页项目文件夹,新建 package.json、main.js、index.html 三个文件(注:其中的 index.html 是你的网页首页)
你的项目目录/
├── package.json
├── main.js
└── index.html
2、在 package.json 中添加如下内容
{
"name" : "app-name",
"version" : "0.1.0",
"main" : "main.js"}
3、在 main.js 中添加下面的内容,这个 main.js 文件就是上面 package.json 中的 "main"键 的值,所以可根据需要修改
const {app, } = require('electron')const path = require('path')const url = require('url')// Keep a global reference of the window object, if you don't, the window will// be closed when the object is garbage collected.let () {
// Create the browser window.
win = new ({width: 800, height: 600})
// and load the index.html of the app.
win.loadURL(url.format({
pathname: path.join(__dirname, 'index.html'),
protocol: 'file:',
slashes: true
}))
// Open the DevTools.
// win..()
// Emitted when the window is closed.
win.on('closed', () => {
// the window object, usually you would store windows
// in an array if your app supports multi windows, this is the time
// when you should delete the element.
win = null
})}// This method will be called when Electron has finished// and is ready to create browser windows.// Some APIs can only be used after this event occurs.app.on('ready', )// Quit when all windows are closed.app.on('window-all-closed', () => {
// On macOS it is common for and their menu bar
// to stay active until the user quits with Cmd + Q
if (process.platform !== 'darwin') {
app.quit()
}})app.on('activate', () => {
// On macOS it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
if (win === null) {
()
}})// In this file you can include the rest of your app's specific main process// code. You can also put them in separate files and require them here.
4、如果你的网页首页的文件名不是 “index.html”,那么请在 main.js 中将其中的 'index.html' 修改为你的网页首页名
5、打开 DOS,cd 到你的项目目录(或直接在你的项目目录下空白的地方 shift+鼠标右键,然后点击在此处打开命令窗口,这里看不懂的,唉,百度吧少年)
6、在上一步的 DOS 下,输入 npm install electron-packager -g全局安装我们的打包神器
npm install electron-packager -g
7、安装好打包神器后,还是在上一步的 DOS 下,输入 electron-packager . app --win --out --arch=x64 --version 1.4.14 --overwrite --ignore=node_modules 即可开始打包
electron-packager . app --win --out --arch=x64
--version 1.4.14 --overwrite --ignore=node_modules
这个命令什么意思?蓝色部分可自行修改:
electron-packager . 可执行文件的文件名 --win --out 打包成的文件夹名 --arch=x64位还是32位 --version版本号 --overwrite --ignore=node_modules
8、打包成功后,会生成一个新的文件夹,点进去,找到 exe 文件,双击就可以看到网页变成了一个桌面应用啦!
以上是最简单的打包方式,至于怎么修改窗口大小、菜单栏怎么加、怎么调用系统API这些,就给你慢慢去研究Electron了。
如果你打包总是不成功,觉得很烦,同时对扩展功能没什么要求的话,
里面有我已将内容为 hello,world 的 index.html 网页通过 Electron 框架打包为 windows 环境下的桌面应用。
现只需将你的网页前端项目复制到 /resources/app/project 目录下,双击 exe 文件即可以桌面应用的方式运行你的网页。
如何搭建web前端框架
搭建web前端框架步骤如下:1、确定项目使用的技术
根据项目的需求等来选择使用的技术(这里以angular4 + + nodejs+mongodb举例)
2、新建一个项目的工作文件夹
使用npm init初始化项目,根据问题配置,一般是直接回车使用默认配置,生成package.json文件
3、新建一个index.html页面
4、新建配置文件system.config.js
5、新建ts的配置文件tsconfig.json
npm install
6、新建webApp目录,这里面放的是所有html页面和js代码,首先得有个入口文件,与system.config.js配置文件中的入口文件名一样,app.module.ts,里面引入了所有js文件,不被引入的在加载时都不会被加载
7、打包(将代码压缩,使程序运行速度更快)
.x基础篇:将静态资源打包为WebJars
我们在编写前后分离项目时,前端的项目一般需要静态资源( Image 、 CSS 、 ...)来进行渲染界面,而如果我们对外采用依赖的方式提供使用时,我们的静态资源文件也应该放入打包文件内,这样才能更便捷的提供我们的功能,在我的开源分布式日志框架 minbox-logging 内提供了管理界面的功能,就是采用的这种方式实现,将静态资源以及 编译后 的 HTML 页面存放到 minbox-logging-admin-ui 依赖内,下面我们来看下具体的实现方式。
在我们打包静态资源前,首先来了解下 提供的 spring.resources.static-locations 配置默认值,该配置用于配置 ,项目启动后会将该参数的 配置值列表 作为 直接可访问 的静态目录进行 映射 ,通过这种方式我们就可以直接访问到我们需要的静态资源内容。
spring.resources.static-locations 配置位于 org..boot..web. 配置类内,其默认值是使用本类内的静态常量 CLASSPATH_RESOURCE_LOCATIONS 的值,如下所示:
通过查看源码我们得知, classpath:/META-INF/resources/ 目录下的资源是可以直接通过默认的映射绑定关系访问到的,通过这一点,我们可以将静态资源依赖内的资源文件存放到 META-INF/resources 目录下。
我们使用 Maven 方式构建一个普通的项目,在 pom.xml 文件内添加 资源目录 配置,在 编译 过程中将 src/main/resources 目录下的文件全部复制到 META-INF/resources 下,如下所示:
我们为了本地演示使用,将 Maven 项目通过 mvn install 命令安装到本地仓库,以便于提供给其他项目使用。
我们来创建一个 项目,在项目的 pom.xml 文件内添加如下依赖:
由于我们在之前通过 mvn install 命令将 静态资源项目 安装到了本地仓库,所以我们可以使用依赖。
通过 IDEA 工具我们可以查看 webjars-sample 依赖内的资源文件,如下图所示:
由于 提供的 spring.resources.static-locations 参数默认值,会将 classpath:/META-INF/resources 目录作为静态资源映射,所以我们可以直接进行访问 head.jpg 文件。
运行 项目,通过访问 ,效果如下图:
我们在访问静态资源的时候并没有直接加前缀,而是通过 ip:port/head.jpg 直接访问,这主要是 还提供了另外一个配置 spring.mvc.static-path-pattern ,其作用是用来配置 静态资源的访问前缀 ,默认值为 /** ,如果需要修改直接在 .yml 文件内进行赋值即可,
.yml 配置文件,如下所示:
我们修改了 spring.mvc.static-path-pattern 配置的值为 /static/** ,当我们重启项目后需要通过 才可以访问到资源。
如果你有一些资源不希望被别人修改,让使用者更加便利的集成时,可以采用这种方式来封装自己的 webjars ,只需要添加依赖引用就可以访问到静态资源,也可以将静态 HTML 网页通过这种方式打包。
北京web前端培训机构,出来好找工作吗,需要学哪些内容?
大部分人学习一项技术肯定是以就业为目标,那么学习web前端哪些知识才能找到一份工作?小蜗这里根据行业的变化以及企业的用人需求,整理了一份web前端的学习路线,只要掌握了以下内容,找到一份工作基本不难。
*阶段:专业核心基础
阶段目标:
1. 熟练掌握HTML5、CSS3、Less、Sass、响应书布局、移动端开发。
2. 熟练运用HTML+CSS特性完成页面布局。
4. 熟练应用CSS3技术,动画、弹性盒模型设计。
5. 熟练完成移动端页面的设计。
6. 熟练运用所学知识仿制任意Web网站。
7. 能综合运用所学知识完成网页设计实战。
知识点:
1、Web前端开发环境,HTML常用标签,表单元素,Table布局,CSS样式表,DIV+CSS布局。熟练运用HTML和CSS样式属性完成页面的布局和美化,能够仿制任意网站的前端页面实现。
2、CSS3选择器、伪类、过渡、变换、动画、字体图标、弹性盒模型、响应式布局、移动端。熟练运用CSS3来开发网页、熟练开发移动端,整理网页开发技巧。
3、预编译css技术:less、sass基础知识、以及插件的运用、BootStrap源码分析。能够熟练使用 less、sass完成项目开发,深入了解BootStrap。
4、使用HTML、CSS、LESS、SASS等技术完成网页项目实战。通过项目掌握*阶段html、css的内容、完成PC端页面设计和移动端页面设计。
第二阶段:Web后台技术
阶段目标:
1. 了解的发展历史、掌握Node环境搭建及npm使用。
2. 熟练掌握的基本数据类型和变量的概念。
3. 熟练掌握中的运算符使用。
4. 深入理解分之结构语句和循环语句。
5. 熟练使用数组来完成各种练习。
6.熟悉es6的语法、熟练掌握面向对象编程。
7.DOM和BOM实战练习和H5新特性和协议的学习。
知识点:
1、软件开发流程、算法、变量、数据类型、分之语句、循环语句、数组和函数。熟练运用的知识完成各种练习。
2、面向对象基础、异常处理机制、常见对象api,js的兼容性、ES6新特性。熟练掌握面向对象的开发以及掌握es6中的重要内容。
3、BOM操作和DOM操作。熟练使用BOM的各种对象、熟练操作DOM的对象。
4、h5相关api、canvas、ajax、数据模拟、touch事件、mockjs。熟练使用所学知识来完成网站项目开发。
第三阶段:数据库和框架实战
阶段目标:
1. 综合运用Web前端技术进行页面布局与美化。
2. 综合运用Web前端开发框架进行Web系统开发。
3. 熟练掌握Mysql、Mongodb数据库的发开。
4. 熟练掌握vue.js、webpack、elementui等前端框技术。
5. 熟练运用Node.js开发后台应用程序。
6. 对Restful,Ajax,JSON,开发过程有深入的理解,掌握git的基本技能。
知识点:
1、数据库知识,范式,MySQL配置,命令,建库建表,数据的增删改查,mongodb数据库。深入理解数据库管理系统通用知识及MySQL数据库的使用与管理,为Node.js后台开发打下坚实基础。
2、模块系统,函数,路由,全局对象,文件系统,请求处理,Web模块,Express框架,MySQL数据库处理,,文件上传等。熟练运用Node.js运行环境和后台开发框架完成Web系统的后台开发。
3、vue的组件、生命周期、路由、组件、前端工程化、webpack、elementui框架。Vue.js框架的基本使用有清晰的理解,能够运用Vue.js完成基础前端开发、熟练运用Vue.js框架的高级功能完成Web前端开发和组件开发,对MVVM模式有深刻理解。
4、需求分析,数据库设计,后台开发,使用vue、node完成pc和移动端整站开发。于Node.js+Vue.js+Webpack+Mysql+Mongodb+Git,实现整站项目完整功能并上线发布。
第四阶段:移动端和微信实战
阶段目标:
1.熟练掌握React.js框架,熟练使用React.js完成开发。
2.掌握移动端开发原理,理解原生开发和混合开发。
3.熟练使用react-native和Flutter框架完成移动端开发。
4.掌握微信小程序以及了解支付宝小程序的开发。
5.完成大型电商项目开发。
知识点:
1、React面向组件编程、表单数据、组件通信、监听、声明周期、路由、Redux基本概念。练使用react完成项目开发、掌握Redux中的异步解决方案Saga。
2、react-native、开发工具、视图与渲染、api操作、Flutter环境搭建、路由、ListView组件、网络请求、打包。练掌握react-native和Flutter框架,并分别使用react-native和Flutter分别能开发移动端项目。
3、微信小程序基本介绍、开发工具、视图与渲染、api操作、支付宝小程序的入门和api学习。掌握微信小程序开发了解支付宝小程序。
4、大型购物网站实战,整个项目前后端分离开发;整个项目分为四部分:PC端网页、移动端APP、小程序、后台管理。团队协作开发,使用git进行版本控制。目期间可以扩展Three.js 、。
web前端学习路线思维导图
北京web前端培训,学习web前端需要哪些步骤?
一、HTML的学习HTML(超文本标记语言)是一个网页的骨架,不管是静态网页还是动态网页。之后返回到浏览器端的都是HTML代码。浏览器然后把HTML代码解释渲染后反馈给用户,所以,我们要掌握HTML的基本结构、常用标记和属性。
学习是一个记忆和理解的过程,在学习HTML过程中可以借助拆分”视图辅助学习。在“设计”视图中看效果,在“代码”视图中学本质, 将各种视图的优势发挥出来,这种对照学习的方法弥补了死记HTML标签和属性的枯燥。
二、css的学习
CSS叫做层叠样式表,一种样式设计语言,它能够做到网页表现与内容分离,与HTML相比它能复用HTML的样式,这样就在很大程度上提高了开发速度,也降低了维护成本。
同时CSS中的盒子模型、相对布局等能够实现对网页中各对象的位置排版进行像素级的控制。
三、的学习
是一种在客户端广泛使用的语言,它为我们提供了一些内置函数、对象和DOM操作,这些内容可以帮助我们来实现一些客户端的一些交互,如:效果、验证等,使界面更加生动。
四、jquery的学习
jQuery 能兼容各种浏览器,同时现在有很多基于jQuery的插件可供选择,这样在我们实现一些丰富的动态效果时更方便,大大节省了开发时间,提高了开发速度。
五、bootstrap的学习
Bootstrap是用于前端开发的工具包,是一个CSS/HTML框架,并且支持响应式布局。在项目开发过程中,我们可以借助Bootstrap提供的CSS样式、组件、插件等快速的完成页面布局和样式设置,然后再有针对性的微调样式,这样基于框架进行开发大大缩短了开发周期。