multipages-generator今日发布?!妈妈再也不用担心移动端h5网站搭建了!
本文适合的读者????
现在在手淘,京东,今日头条,美柚等过亿用户的手机app中的,都常见h5网页,他们有更新快,灵活,便于分享和传播的特性。这里有他们中的几个h5的例子:(手淘,美柚)。这些app中都嵌者数以百计,千计的h5网页。背后他们开发这些h5的框架是怎么样的呢?
或许你也想开发一些h5,或者简单的react,vue应用,做些广告,做些互动和营销,发布到微信朋友圈传播,那如何快速的搭建和发布这些h5呢?
或许你是前端工作不久的初学者,搭建这样的多页h5网站,怎么样的架构才是正确的打开方式呢?
或许你想学习下充斥耳边的webpack,vue,nodejs,es6,MERN框架的另类玩法,那这篇文章也适合你!
最重要的是,你烦透了移动端适配,移动端性能优化,你只想专注于功能开发,那这篇文章就是为你而准备的!
如果让你现在从零开始搭建工程开发一个h5页面并且发布到线上,需要多久?
滴答滴答滴答!~
你可能需要做以下这些事件??
- 搭建服务端工程,分好目录结构,配置要数据库mysql,mongodb,redis;
- 搭建前端工程,划分目录结构
- 前端,服务端划分dev,test,prod环境
- 前端配置webpack做编译,多个h5是多页面的,可能你还要倒腾下webpack多页面的配置方案
- 好了,可以开始开发了,mobile h5还有适配问题,ios有retina屏,android老旧机型要兼容
- 开发好了,要生产发布编译了,生产的静态文件放服务器?不,还是CDN上传比较好
- 接下来要部署了,单个实例容易挂,要做cluster集群发布或者引入pm2做集群发布
- 前端不熟悉linux,发布了大半天
- 出错了查看日志,来回折腾了大半天
- 折腾了好久,终于上线了,可以转发朋友圈了~
上面折腾一番,要多久你心里也有数了。
麻烦的事情,总有对应的解决办法,发布的multipages-generator,或许对你会有所帮助!
上菜 multipages-generator!?
multipages-generator 是一个类似express-generator的,一键生成多页h5网站架构模板的npm模块;他主要是为了移动端h5,或者简单的vue,react,angular应用的网站架构模板;该架构模板其实也是淘宝,今日头条,美柚等公司开发app的网站架构的缩影。注意,他是一个架构,是一种移动端解决方案,不是现成可部署的网站模板。
他主要的特点是全而精,全面,开发h5所需的他基本都全了,精是开发出来的网页高性能(未来会更好),手机适配好。具有的特别请移步github查看。
一个h5出产的截图,利用multipags-generator开发出下面的h5,我大概估算了下只需要1个小时。
也可以用手机chrome,微信,淘宝的扫一扫打开体验下
大家可以测试下他的性能,android,ihone 4/5/6/7/8, iphonex, 等的兼容性(用了手淘flexible,他有的这里都支持)。
multipages-generator 支持以下特点:
- 支持webpack编译多页面,可编译指定项目,也可编译全部项目
- 前端编译支持热更新
- 编译出的网页性能经过优化,符合最佳实践(还不完善,后面加入淘宝性能优化的全部内容)
- 支持development,producton环境区分
- producton环境可配置生产的css,js,images自动编译后上传OSS服务器
- webpack编译后的html模板支持ejs等模板引擎
- 使用node.js做服务,nodemon热更新
- 支持pm2集群启动
- ? (新) 加入手淘flexible布局方案,适配不同尺寸和DPI的屏幕,加入postcss支持
- ? (新) 支持生产release模式,配置下七牛云CDN,编译后js,css,图片等资源文件上传cdn
安装
通过NPM全局安装即可使用:
npm install multipages-generator -g
创建并运行?
步骤一:执行multipages-generate
multipages-generate
步骤二:出现输入项目名提示,并输入您的项目名称
? Project name: <输入项目名>
步骤三:进入目录 -> install -> 启动
install dependencies:
%s cd %s && npm install
run the app:
npm run start
or:
pm2 start process.json
运行与开发
启动服务端
上面已经启动了,如果还没执行上面的步骤,执行以下命令
npm run start
前端热启动项目facemerge
打开另一个终端黑窗
npm run watch:facemerge
会有页面打开,没有的话手动打开http://localhost:2000
注意:
本应用需启动两个服务,一个是服务端node.js(端口默认为4000),一个是前端(browser-sync,默认2000)
这里为了让开发时更愉悦,启动了前端服务,具有热更新的性能,每次更新自动编译输出到express工程的对应目录中,项目部署时不需要启动;
新增一个项目
apps 目录下已有facemerge,viewport两个项目,新增一个项目xxx,目录结构需参考facemerge
├─facemerge
│ ├─assets
│ │ ├─css
│ │ └─imgs
│ ├─js
│ └─views
└─voicemerge
"watch:facemerge": "rimraf public &&cross-env ENV=dev PROJECT_NAME=facemerge node ./tools/webpack.watch.js"
启动方式跟上述 “开发模式启动项目facemerge” 相同
发布
开发好了就发布线上,这里也整理了一套30分钟发布到线上的教程。但是仅限于个人玩一玩,并不能用于生产。但是实际上企业中使用的核心思想也是这套 + cI自动化部署;
总结
本文介绍了multipages-generator(简称MG)迅速搭建移动端h5工程,以及迅速发布自己的应用到云服务器上。希望对前端同仁有所帮助,现在MG还在不断的迭代演进中,如果对你有所帮助,希望动动手给我的GitHub打个start,鼓励下我前进的动力?!
multipages-generator今日发布?!妈妈再也不用担心移动端h5网站搭建了!的更多相关文章
- 妈妈再也不用担心别人问我是否真正用过redis了
1. Memcache与Redis的区别 1.1. 存储方式不同 1.2. 数据支持类型 1.3. 使用底层模型不同 2. Redis支持的数据类型 3. Redis的回收策略 4. Redis小命令 ...
- 有了 tldr,妈妈再也不用担心我记不住命令了
引言 有一次我在培训时说「程序员要善于使用 Terminal 以提高开发效率」,一位程序员反驳道:「这是 21 世纪,我们为什么要用落后的命令行,而不是先进的 GUI?」 是的,在一些人眼里,这个黑黑 ...
- 妈妈再也不用担心我使用git了
妈妈再也不用担心我使用git了 Dec 29, 2014 git git由于其灵活,速度快,离线工作等特点而倍受青睐,下面一步步来总结下git的基本命令和常用操作. 安装msysgit 下载地址:ms ...
- 利用CH341A编程器刷新BIOS,恢复BIOS,妈妈再也不用担心BIOS刷坏了
前几天,修电脑主析就捣鼓刷BIOS,结果刷完黑屏开不了机,立刻意识到完了,BIOS刷错了.就从网上查资料,各种方法试了个遍,什么用处都没有.终于功夫不负有心人,找到了编码器,知道了怎么用.下面看看具体 ...
- python爬虫07 | 有了 BeautifulSoup ,妈妈再也不用担心我的正则表达式了
我们上次做了 你的第一个爬虫,爬取当当网 Top 500 本五星好评书籍 有些朋友觉得 利用正则表达式去提取信息 太特么麻烦了 有没有什么别的方式 更方便过滤我们想要的内容啊 emmmm 你还别说 还 ...
- 锋利的js之妈妈再也不用担心我找错钱了
用js实现收银功能. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <hea ...
- [尝鲜]妈妈再也不用担心 dotnet core 程序发布了: .NET Core Global Tools
什么是 .NET Core Global Tools? Global Tools是.NET Core 2.1 中一个初次出现的特性.Global Tools提供了一种方法,让开发人员编写的.NET C ...
- 有了AOE,妈妈再也不用担心我的模型管理!
前言 越来越多的业务会用到AI相关的技术,大多数的AI模型是部署在云端使用的,毕竟服务端计算更快,管理也更容易.随着终端设备性能提升,在终端使用 AI 模型有了更大的价值,可以更好满足业务对响应实时性 ...
- 有了jsRender,妈妈再也不用担心我用jq拼接DOM拼接的一团糟了、页面整齐了、其他伙伴读代码也不那么费劲了
写在前面 说来也很巧, 下午再做一个页面,再普通不过的分页列表,我还是像往常一样,基于MVC环境下,我正常用PagedList.MVC AJAX做无刷新分页,这时候问题就来了,列表数据中有个轮播图用到 ...
随机推荐
- RocketMQ事务性消息及持久化
TransactionProducer(事务消息): 在分布式系统中,我们时常会遇到分布式事务的问题,除了常规的解决方案之外,我们还可以利用RocketMQ的事务性消息来解决分布式事务的问题.Rock ...
- RBAC----基于角色的访问权限控制
RBAC是什么? 基于角色的权限访问控制(Role-Based Access Control) 作为传统访问控制(自主访问.强制访问)的有前景的代替 受到了广泛的关注. 在RBAC中,权限与角色相关联 ...
- Markdown在线编辑及预览
推荐一款不错的Markdown语法手册,最可贵的是支持在线编辑预览: Cmd Markdown简介 Cmd Markdown语法手册及在线编辑 补充一些使用技巧: MarkDown实现段首缩进:「Ma ...
- 剑指offer-动态规划-贪心算法--剪绳子-python
题目描述 给你一根长度为n的绳子,请把绳子剪成m段(m.n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],...,k[m].请问k[0]xk[1]x...xk[m]可能 ...
- 从零开始学MySQL(四)
上节连接:https://www.cnblogs.com/RajXie/p/10880809.html 上节说到,在创建表的同时,需要给出列的定义.列的定义可展开如下: 列名 列的数据类型 列的一些其 ...
- IntelliJIdea初次接触
1.下载 在官网下载专业版https://www.jetbrains.com/idea/ 2.修改配置 bin目录下文件如下: 修改idea64.exe.vmoptions(64位执行文件idea64 ...
- CentOS 7 环境下部署 SVN 并实现自动更新(版本库放在Tomcat下)
1.安装 SVN 1.1先检查是否有安装 svn rpm -qa subversion #没有什么显示就说明没有安装过yum remove subversion #如果有安装就运行删除老版本yum i ...
- pandas读取Excel文件
In [7]: import pandas as pd filname = 'ch02数据导入\\student.xlsx' data = pd.read_excel(filname) data Ou ...
- MacOS Mojave 安装sshpass
使用sshpass的场景 安装sshpass及各种常见小问题处理 测试 安全提示 使用sshpass的场景 在MacOS下使用ansible命令(inventory文件中使用了密码验证的方式)或者使用 ...
- 前端之JQuery:JQuery基本语法
jQuery基本语法 一.jQuery基础1.为什么要用jquery? 写起来简单,省事,开发效率高,兼容性好2.什么是jQuery? jQuery是一个兼容多浏览器的JavaScript库(类似py ...