阿里云无线&前端团队是如何基于webpack实现前端工程化的

背景

前端经历了初期的野蛮生长(切图,写简单的特效)——为了兼容浏览器兼容性而出现的各种类库(JQUERY,YUI等——mv*(饱暖思淫欲,代码多了,也就想到怎样组织代码结构,backbone,angularjs等)——工程化(利用grunt,gulp,yeoman做项目脚手架以及打包部署),然而这些东西配置起来需要一定的门槛,并且需要跟业务耦合。全端化、全栈化以及工程化的大环境下,我们希望有这样一套工具可以尽量多的支持业务场景,尽量少的配置,尽量简单的使用命令。而DBL就是这样一个前端自动化工具,主要功能:项目脚手架,本地server(实时监控,修改立即生效),本地可视化mock数据并会自动化生成接口文档,deploy项目。下面会详细介绍该工具的使用。

安装dbl工具

sudo npm install dbl -g
dbl -V

项目脚手架

mkdir demo && cd demo
dbl init

运行命令后,dbl会为我们初始化项目结构:

|-demo
   |-- src
       |-- index.html
       |-- css
       |-- js
   |-- make-webpack.config.js
   |-- package.json
   |-- aliasMap.json
   ...

如何使用及工具优势

我们的项目脚手架依赖webpack(如果对此不熟悉的可以自行谷歌),优势在于:

  • 比起grunt,gulp,在配置上要简单很多。另外,grunt,gulp只是作为打包工具,如果要做模块化开发,还必须引入requirejs或者seajs。而用了dbl,你完全不用考虑那些麻烦的配置问题,一切都帮你配置好了,你可以像写node一样写js了。
  • 模块化开发,一个完整模块应该包含html,css,js。在传统工具中,我们很难维护模块css和js保持同步。而dbl,可以用做到在开发过程中直接这样使用:
/这是文件 component/list.js/
require('component/list.less')

工具会自动把less编译成css,并且在html页面上生成style标签,并把css插入进去。细心的你可能会说,html应该对于style标签有个数限制,太多无法支持。而且如果上线时采用这种方式不能很好的利用cdn缓存——不过,不用担心,deploy的时候,我们会把这些style提取出来,根据页面级别合并成一个css文件。

  • 资源尽量利用浏览器缓存。利用angularjs + requirejs,如果有多个vm页面,公用的资源我们习惯用grunt-requirejs根据页面打包在一起。这样做,就忽视了浏览器缓存对于性能的影响。而dbl,如果有两个页面共同引用了一个模块,这个模块将会被打包到common.js。
  • 支持less,sass(这个考虑到很多用户安装时会出问题,如果需要自己在 make-webpack.config.js配置里加上即可)。这种可配置的方式极大的考虑了扩展。
  • 本地server。修改自动生效,而且几乎是瞬时的。
  • 本地mock数据。mock数据是通过启用另外一个node服务作为数据提供方。
    ~~~js
    dbl server -p 3001
    ~~~
    此命令运行后,mock服务自动启动。默认端口是8001——注意server和mock是两个独立服务。mock服务可以可视化编辑接口,会自动生成接口文档,方便前后端合作。而且只要项目在,理论上这个文档一定是最新的。比记录在doc文档系统方便多了。你可以通过:http://localhost:8001 访问,界面长这样:
  • dbl deploy 命令会把资源进行打包压缩,并且在当前目录下生成build文件夹。到这里,你就可以愉快的把此目录上传到cdn上了。

项目地址:https://github.com/cc17/dbl

时间: 2024-05-25 07:13:43

阿里云无线&前端团队是如何基于webpack实现前端工程化的的相关文章

阿里云无线团队将并入天宇 荣秀丽称近期达成合作

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; 1月31日下午消息,据消息人士透露,近段时间一直被业内关注的阿里云与天宇朗通合作一事已经敲定:阿里云将拆分无线团队并入天宇朗通,现天宇朗通董事长荣秀丽将成为新公司的CEO,阿里云CEO王坚将兼任新公司CTO. 对于合作事宜,天宇朗通董事长荣秀丽在与搜狐IT电话连线时表示:"天宇朗通确实目前正与阿里巴巴开展相关商谈,但具体细节还未最终敲定,预计合作肯定会在今

阿里云无线团队将并入天宇

阿里巴巴在移动互联网领域的布局将以这样的方式进行:拆分阿里云无线团队并入天宇朗通进行重组.这家荣秀丽任CEO.王坚兼任CTO的新公司在兼具软件.应用.硬件等能力的同时,还将具备手机产能. 近一段时间,阿里云计划与天宇朗通合并的消息引发外界的各种猜测,尽管两家公司没有公开回应此事,但有可靠的消息证实,双方的合作即将完成. 按目前确定的计划,阿里云将拆分出无线团队,并入天宇朗通进行重组.而并非此前传言的阿里云直接与天宇朗通合并.据透露合并之后,天宇朗通现任董事长荣秀丽将出任CEO一职,而阿里云总裁王

阿里云分布式存储Pangu团队招人啦

阿里云-飞天-盘古 概述 业务 盘古是阿里云自研的分布式存储平台,承接了整个阿里云的存储业务,拥有海量的用户.当前支持的业务方向主要有 超大规模的分布式文件系统(单集群数万台机器,数十亿文件),主要用于阿里云的大数据计算服务(ODPS). 块存储,支持阿里云的云盘业务,包括全SSD云盘,混合存储云盘,SATA云盘,目前无论是收费用户数.营收.数据量.机器规模 在国内都无出其右. 对象存储,成功入围Gartner最新一期全球公共云存储服务魔力象限,也是首家入选的中国云服务商. 表格存储.SLS.归

支付宝前端团队详解基于Node.jsWeb框架Chair

Chair是支付宝前端团队推出的,基于Node.js的Web框架,适用于大部分的Web应用. 本文简要介绍Chair的设计思想.功能架构和开发状况. 一.Chair的由来和设计思想 历史上,支付宝前端项目都是直接基于Java后端开发的.这种架构下,前端工程师做出网页模板(基于velocity模板引擎的vm文件),交给后端的Java引擎渲染.支付宝采用的Java引擎是名为Sofa的MVC框架. 对于前端工程师来说,这种架构有很多不方便的地方.首先,需要了解后端的实现,并且依赖开发环境中的dev服务

【阿里云MVP月度分享】如何基于MYSQL做实时计算?

有时候我们会有这样的场景,在某个接口中,数据已经很规范地存入到一张的MYSQL表中,现在想对这样的数据做一些实时或准实时处理,比如数据多模式存储.异步准实时业务流程.业务实时监控等.接口中处理流程如下: 最原始的方法,是改动业务代码,将这些额外的处理流程作为同步流程,在更新MYSQL数据之后同步执行.如下图: 但是这样的处理流程可能会越来越多,如果一直作为同步流程,整个接口会变得越来越庞大.并且耗时越来越长.出问题的风险越来越高. 所以我会考虑异步处理流程.如果可以改动一下代码,将数据额外写一份

PolarDB · 新品介绍 · 深入了解阿里云新一代产品 PolarDB

背景意义 云计算为如今的互联网时代提供了更多的计算能力,乃至创造能力,关系型数据库作为所有应用不可或缺的重要部件,开箱即用,高性价比特性的云数据库深受开发者的喜爱.作为一线的开发和运维人员,在阿里云的线上值班中,我们经常会碰到以下经典的客户抱怨. "你好,你们RDS的产品很棒,但是就是有点小贵,尤其是我要买只读实例的时候,成本是线性增加的,你们什么时候能便宜点?" "我在4天前,手工做了一个备份,数据库比较大,3T,你们说差不多要70个小时备份,这个..有没有什么办法加快一点

? 阿里云前端工程化工具 Dawn 正式开源!

Dawn Dawn 取「黎明.破晓」之意,原为「阿里云·业务运营团队」内部的前端构建和工程化工具,现已完全开源.它通过 pipeline 和 middleware 将开发过程抽象为相对固定的阶段和有限的操作,简化并统一了开发人员的日常构建与开发相关的工作. 项目地址:https://github.com/alibaba/dawn (感兴趣请赏个 Star) 特点 采用中间件技术,封装常用功能,易于扩展,方便重用 支持 pipeline 让多个 task 协同完成构建任务 简单.一致的命令行接口,

阿里云前端周刊 - 第 24 期

推荐 1. Firefox 引入 Headless 模式 https://developer.mozilla.org/en-US/Firefox/Headless_mode 类似于 Chrome 的 Headless 模式,现在 Firefox 也引入了 Headless 模式,其允许开发者利用 Firefox 进行更加方便地自动化测试.动态网页抓取等操作:本文也介绍了如何利用 Selenium 控制 Firefox 进行自动化浏览器操作等内容. 2. Webpack 4 开发计划 https:

解读阿里云数据库团队如何打通OLAP和OLTP任督二脉

本文由Postgres中国区主席.阿里云数据库专家萧少聪所写. 发布会回顾:点此进入 话题讨论:联姻Greenplum的HybridDB,是否能挑战AWS Redshift的霸主地位? 以下为文章正文: 2016年我们可以看到,越来越多的互联网企业及新型的创业公司都已经开始基于云计算实现IT架构.阿里云在当前已经实现了平台化作为商业模式.简单来说,阿里云主要提供网络.计算.存储等服务,并以此来吸引 PaaS 和 SaaS 类的合作伙伴,同时自身又扮演者"应用超市"的角色,将自家及合作伙