「移动开发」iuap mobile玩转前端自动化构建

提起iuapmobile studio,相信大家已经不再陌生了,是进行移动应用开发的强大集成工具与必备神器。借助强大的iuap mobile studio,可以实现对开发、测试、调试、打包、发布全程管理。同时iuap mobile studio又是一个极具开放性的平台工具,可以与绝大多数优秀的前端框架、技术很好地集成。今天我们就来看看在iuap mobile上如何玩转这些如火如荼的前端自动化构建技术。
说起目前主流前端自动化构建技术,少不了npm、grunt、gulp、browserify、webpack的身影,它们不但可以省去你开发时代码合并、压缩等工作,还可以让你使用SASS、LESS、ES6、React、Vue等进行开发新体验。

我们来简单认识一下这些技术吧,熟悉这些技术同学可直接略过下面一段。

iuap mobile在进行移动开发时如何引入这些前端自动化构建技术呢?接下来我们通过两个例子来看一下在iuapmoile之上如何使用这些自动化构建工具。
iuapmobile + gulp
首先我们来看一下gulp如何在iuapmobile中使用。总的来说,分为如下几步:
(1)环境搭建

(2)创建gulp项目

(3)本地项目依赖配置及开发

(4)编译打包

第一步、环境搭建

这块网上介绍性的很多,总的来说就是使用npm进行全局安装和本地项目开发依赖安装使用如下步骤来进行安装运行,涉及的命令如下:

  1. 全局安装 gulp:

$ npm install -g gulp

  1. 作为项目的开发依赖(devDependencies)安装:

$ npm install --save-dev gulp

  1. 在项目根目录下创建一个名为 gulpfile.js 的文件:

var gulp = require(‘gulp‘);

gulp.task(‘default‘, function(){

// 将你的默认的任务代码放在这

})

  1. 运行 gulp:

$ gulp

第二步,创建gulp项目

通过iuapmobile studio新建项目的向导页创建gulp项目,studio会自动为你生成一个典型的gulp目录结构。整个过程如下图所示:

第三步、使用gulp进行自动化构建开发

我们通过在gulpfile.js中,通过编写各种task,使用gulp插件(例如gulp-concat、gulp-sass、gulp-less、gulp-uglify等)将我们项目中的js、css、sass、less等文件统一压缩合并并输出成新的目标文件,在HTML页面中引用压缩合并后的文件即可。例如下图就是一个基于iuapmobile studio开发的一个使用gulp的页面示例。其中

左边图展示一个iuapmobile移动项目的目录结构,其中

根目录下的js、css、img等文件夹都是源代码文件夹。

dist文件夹是使用gulp进行自动化构建的目标文件夹。

右边图展示了使用gulp来对项目中的JS、CSS、LESS、SASS进行合并压缩,主要是通过JavaScript借助gulp的require机制加载各种gulp插件,来编写gulp task来实现自动化构建。

下图(左)html页面引用的dist/css/all.css、dist/js/all.min.js都是通过gulp合并压缩后的文件,加快了页面资源加载速度。例如all.min.css实际上是sass和less编译后的合并压缩文件,如下图(中)展示的代码是SASS语法编写的样式,下图(右)展示的是用LESS语法编写的样式。

gulp不仅提供了针对SASS、LESS的插件,还提供了针对JSX、ES6、TypeScript的插件,可以这些插件可以使用新的语法形式来编写JavaScript代码,这些还靠大家自己去亲身实践,这里就不过多赘述了。
第四步、编译打包
所有开发打包完毕后,可以使用iuapmobile的一键打包功能进行本地编译打包功能生成安卓应用了。通过云打包进行IOS编译打包可以生成IOS应用。生成后的效果图如下:
这一步,没有什么额外的工作,只需要像往常使用iuapmobile进行编译打包一样进行操作即可,运行后在模拟器或真机上查看后的结果如下图。

通过以上可以看出在iuapmobile上,是可以使用gulp来完成移动开发中的自动化构建工作的,避免了容易出错的手工操作环节,在编写代码方式上也有了更多的选择,将开发环境和生产环境进行分离,最终页面加载的也都是合并压缩后的,,加载效率自然会提升不少。

iuapmobile + webpack

我们再来看一下webpack如何在iuapmobile中使用。首先来看一下iuapmobilei前端js框架如何支持模块化。

iuapmobile中前端js框架是支持模块化编写的代码,因此在webpack中可以通过require机制来加载,例如
var summer = require(‘summer.js’);
var um = require(‘iuapmobile.framework.ui.js‘);
其中,iuapmobile.framework.ui.js是iuapmobile提供的前端UI插件JS文件合并而成的插件集合,其中每一个插件来自一个独立模块化的js文件,因此也支持直接独单加载某个模块插件,例如
var modal = require(‘um.modal.js’);
modal.toast(‘这是一个toast’);adfadf
总的来说分为如下几步:
(1)环境搭建

(2)创建webpack项目

(3)本地项目依赖配置

(4)开发测试打包运行

第一步、环境搭建

  1. 全局安装webpack:

$ npm install -gwebpack

  1. 作为项目的开发依赖(devDependencies)安装:

$ npm install --save-devwebpack

  1. 配置webpack.config.js的文件

通过该配置文件指定入口文件路径和存放打包后文件的地方的路径等

4。通过安装各种使用到的加载器、插件、开发服务器等。

$ npm install --save-devstyle-loader css-loader

$ npm install --save-dev babel-core babel-loader babel-runtime

$ npm install --save-devbabel-preset-es2016 babel-preset-react

$ npm install --save-devwebpack-dev-serve

  1. 运行webapck:

$ webpack

第二步、创建wenpack项目

通过iuapmobile studio新建项目的向导页创建webpack项目,studio会自动为你生成一个典型的webpack目录结构。整个过程如下图所示:

我们可以看到在项目根目录下有package.json、webpack.config.js等文件其中,
package.json是npm管理配置的,

webpack.config.js来webpack进行项目管理配置的。

node_modules是你的引入的插件模块所在的目录,熟悉前端自动化构建的同学对此一定很熟悉吧。

public文件夹是该配置文件中定义的输出文件夹路径

以上时iuapmobile默认为你生成的目录结构,当然你也可以在此基础上改成你自己习惯的目录结构。

第三步、使用webpack进行自动化构建开发

我们webpack提供了针对JS、CSS、JSON进行模块化加载的各种loader,通过安装这些loader后,我们便可以对项目中的各种资源进行打包。如下图所示,左边图为webpack.config.js中定义的各种loader,右边图中dist文件夹为打包后目标文件夹,其中indexBundle.js等为各对应HTML页面打包后的js文件。

除了打包之外,使用webpack的另一个有意义的事情便是可以使用ES6、React、Vue等来编写自己的代码了。如下所示

左边图展示了该页面仅仅需要引用一个打包后的indexBundle.js即可。

右边图展示了indexBunlde.js中对各种资源文件的统一模块化加载,其中包含了ES6语法写的js,还包括css、scss等样式文件以及引用的第三方插件js文件。

下面左图则是使用ES6语法来编写的JS代码,通过import被模块化加载到indexBundle.js中。右图则是使用SASS语法编写的样式,通过require被打包到indexBundle.js中,页面无需单独再引用转化为css后的文件。

第四步、编译打包

所有开发打包完毕后,可以使用iuapmobile的一键打包功能进行本地编译打包功能生成安卓应用了。通过云打包进行IOS编译打包可以生成IOS应用。生成后的效果图如下:

看了这两个案例有没有心动?原来你的iuapmobile项目也可以使用自动化构建自己的项目了,有没有眼前一亮的感觉?实际开发中,也可以根据需要将gulp和webpack组合使用,通过gulp插件gulp-webpack来完成资源打包和模块化加载工作,在gulpfile中定义task来完成整个项目自动化构建,例如

iuapmobile的开发者使用者们要不要赶紧去实践一下呢?

关于iuapmobile

iuapmobile开发平台是一个开放的平台,好的前端开源框架、技术工具都可以集成使用。开源、开放模式是我们一贯的理念。至于在实际应用开发过程中是否引入前端自动化构建完全取决于聪明的开发者自身,平台、框架说到底都是工具、方法,软件开发中的人才是最核心因素。什么是好的技术、什么时机引用什么技术,都取决于人的因素,在某种意义上,软件、硬件,归根结蒂都是人件。

iuap mobile普及:

iuap mobile为企业提供了完整的从跨平台开发到管理运维到安全整合的一体化解决方案。帮助企业迅速达到较高级别的移动信息化成熟度水平,是企业移动化建设的基础设施。

iuap mobile成功服务于政府机关以及不同行业的大型企业,比如:×××、中国核电工程有限公司、国家开发银行、长城汽车、港华燃气、贵州茅台、旭阳集团、广泽乳业、等。

iuap mobile包含如下产品:

1、 移动开发平台:跨平台开发

2、 移动运行支撑平台:对接第三方业务系统、各种移动服务、移动接入安全、数据缓存、应用多版本容器管理等

3、 移动安全管理系统:移动安全、设备管理、应用管理、设备应用统计分析等等

4、 移动应用商店:移动应用分发与管理

原文地址:http://blog.51cto.com/14084875/2335597

时间: 2024-08-01 10:20:15

「移动开发」iuap mobile玩转前端自动化构建的相关文章

微信小程序开发平台新功能「云开发」快速上手体验

微信小程序开发平台刚刚开放了一个全新的功能:云开发. 简单地说就是将开发人员搭建微信小程序后端的成本再次降低,此文刚好在此产品公测时,来快速上手看看都有哪些方便开发者的功能更新. 微信小程序一直保持一个比较稳定的节奏进行功能的开放与更新,不激进但是又不怠慢,就一直像微信产品的节奏一样,而在生活中我们使用微信小程序的频率也慢慢高起来,如 KFC 自助点个餐.下单一些较冷门的商品等等. 而我给大家免费更新的「微信小程序开发视频教程」大纲也一直在修正与增加,从 40 集增加到 60 集,在云开发发布后

前端自动化构建工具Webpack开发模式入门指南

Webpack Webpack是时下最流行的模块打包器 它的主要任务就是将各种格式的JavaScript代码,甚至是静态文件 进行分析.压缩.合并.打包,最后生成浏览器支持的代码 特点: 代码拆分方案:webpack可以将应用代码拆分成多个块,每个块包含一个或多个模块,块可以按需异步加载,极大提升大规模单页应用的初始加载速度 智能的静态分析:webpack的智能解析器几乎可以处理任何第三方库 Loader加载器:webpack只能处理原生js模块,但是loader可以将各种资源转换为js模块 p

「iOS开发」关于一对一视频聊天直播系统技术(二)处理

针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣. 结合实时流网络 LiveNet 和直播云解决方案的实践,我们将用一系列文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面.深入地了解视频直播技术,更好地技术选型. 在上期采集中,我们介绍了视频采集针对音频采集和图像采集以及它们分别对应两种完全不同的输入源和数据格式. 本篇是<解密一对一视频聊天直播技术>系列之二:处理.我们将讲解常见视频处

腾讯犀牛鸟「云开发」校园技术布道师养成计划

人才竞争日益激烈,如何构建一个具有市场竞争力的能力模型?是值得每一个开发者思考的话题.无论你是在校生,还是在职开发者,未雨绸缪,方能抓住机遇. 如何在大学规划你的技术职业生涯? 如何找准合适的技术方向? 如何提升技术实力? 如何构建技术社区影响力? 假若有一天,你想转型产品经理,又如何实现从技术向产品的华丽转身? 腾讯犀牛鸟云开发校园布道师养成计划之[大咖线上分享],邀请京东.腾讯等优秀产品经理和工程师,与大家分享他们的成长历程和经验,为你指点迷津! 从3月6日起,每周五,腾讯犀牛鸟云开发校园布

「速成应用」一键生成微信小程序平台 可视化制作开发无需代码

经历了频繁的更新迭代,小程序已经构建起了趋于完善的生态,与此同时,以「速成应用」为代表的小程序第三方开发平台也在推动着小程序市场的发展.为了更好地助力企业打造微信内电商生态闭环,实现线上线下引流,「速成应用」于近日进行了全功能的更新,通过对各类功能组件的优化,帮助企业实现商业模式的转型升级与营销突破. 「速成应用」根据商家反馈的问题,重点对小程序模块中的电商.外卖等功能进行优化升级,旨在帮助企业解决门店经营与小程序线上营销两大难题.在这次升级过程中同样也对辅助功能进行了优化.升级完成后,全线功能

LibreOJ #2006. 「SCOI2015」小凸玩矩阵

二次联通门 : LibreOJ #2006. 「SCOI2015」小凸玩矩阵 /* LibreOJ #2006. 「SCOI2015」小凸玩矩阵 本来以为是道数据结构题 后来想了想发现不可做 就考虑二分dp判断 推方程推不出来 就考虑用网络流判断了 二分出一个数 将小于这个数的位置的点编号 每行的可行点与下一行可行的点连边 后一边最大流判断可选出的数的个数是否符合要求即可 */ #include <cstdio> #include <iostream> #include <q

LibreOJ #2006. 「SCOI2015」小凸玩矩阵 二分答案+二分匹配

#2006. 「SCOI2015」小凸玩矩阵 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据 题目描述 小凸和小方是好朋友,小方给小凸一个 N×M N \times MN×M(N≤M N \leq MN≤M)的矩阵 A AA,要求小凸从其中选出 N NN 个数,其中任意两个数字不能在同一行或同一列,现小凸想知道选出来的 N NN 个数中第 K KK 大的数字的最小值是多少. 输入格式 第一行给出三个整数

「C语言」Windows+EclipseCDT下的C语言开发环境准备

之前写过一篇 「C语言」在Windows平台搭建C语言开发环境的多种方式 ,讨论了如何在Windows下用DEV C++.EclipseCDT.VisualStudio.Sublime Test.Clion等IDE/编辑器搭建C语言开发环境,但也只是点到为止的介绍,对每一个开发环境的选择没有详细的步骤与过程: 这次借助C语言期末课程设计文档上介绍用Eclipse开发C语言的时机,逐步图文论证如何用Eclipse从安装到输出自己的第一个C语言Hello World: 欢迎探讨,欢迎互粉: 目录:

LibreOJ #2009. 「SCOI2015」小凸玩密室

二次联通门 : LibreOJ #2009. 「SCOI2015」小凸玩密室 /* LibreOJ #2009. 「SCOI2015」小凸玩密室 树形dp 做到这么正常的题突然感觉好不适应.... 考虑转移 f[x][y] 表示从x点转移到y点的代价 则我们需要处理出以x为根的子树的代价 讨论处理一下即可(有没有左儿子,有没有右儿子,或是都有) 但是这样转移是O(N^2)的 所以我们考虑优化 显然有很多转移是不需要的 比如y在x的子树中时就没必要转移 那么考虑优化 设g[x][i]表示走完x的子