今天本人给大家推荐一个阿里开源的前端构建和工程化工具Dawn。

一、 Dawn是什么?

Dawn 取「黎明、破晓」之意,原为「阿里云·业务运营团队」内部的前端构建和工程化工具,现已完全开源。它通过 pipeline 和 middleware 将开发过程抽象为相对固定的阶段和有限的操作,简化并统一了开发人员的日常构建与开发相关的工作。

二、 它具有什么特点?

特点如下:

(1)采用中间件技术,封装常用功能,易于扩展,方便重用;

(2)支持 pipeline 让多个 task 协同完成构建任务;

(3)简单、一致的命令行接口,易于开发人员使用;

(4)支持基于「中心服务」管理中间件和工程模板;

(5)支持搭建私有中心服务,并统一下发构建规则,易于团队统一管理;

三、 安装

本地或者Linux上安装node.js的前提下且版本大于或等于7.6.0

npm install dawn -g

国内的npm很慢,建议可以使用cnpm,安装流程如下:

npm install -g cnpm --registry=https://registry.npm.taobao.org #安装淘宝镜像

cnpm -v #安装成功会显示对应的版本号

四、 初始化工程

dn init

五、 启动开发服务

dn dev 

控制台正常输出的结果如下:

自动打开

后台管理界面:

六、 执行检查和测试

dn test

控制台正常输出,如下:

七、 构建工程

dn build

正常输出,如下:

执行构建任务,不同的工程类型的构建过程和结果可能不同,取决于初始化工程时使用的工程模板。 完成后,会在当前项目的根目录产生 build 目录,这是构建结果,当然,也可以指定为其它目录名称。

八、 发布工程

dn publish

可以通过 dn publish 命令发布代码和构建结果,不同的工程模板决定了最终发布位置,是否支持 publish 命令取决于选择的「工程模板」。

九、 执行自定义任务

init/dev/build/test/publish 这几个命令可以直接作为「子命令」写在 dn 后边,对于其它名称的 pipeline 需要使用 run 命令

编辑 .dawn/pipe.yml 或 .dawn.yml

demo:
- name: shell
script:
- echo demo

可以通过如下方法执行 demo

dn run demo

本文主要参考: https://alibaba.github.io/dawn/docs/

Dawn开源项目的更多相关文章

  1. C#开源项目

    原文:  http://alance.iteye.com/blog/693987 一.AOP框架        Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了 ...

  2. [转载]C#开源项目(国外的还是很多)

    C#开源项目(国外的还是很多)一.Ajax框架Ajax.NET Professional (AjaxPro)是最先把AJAX技术在微软.NET环境下的实现的AJAX框架之一.它在客户端脚本之上创建代理 ...

  3. 转发 ----> 2018年阿里巴巴重要开源项目汇总(持续更新中)

    转发自segmentfault  https://segmentfault.com/a/1190000017346799 前端 1.数据驱动的高交互可视化图形语法 AntV - G2 G2 是一套基于 ...

  4. c#开源项目[转]

    一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种部署方面(as ...

  5. 程序员必备,C#各类项目、开源项目插件资料收藏

    一.AOP框架     Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种部署方面 ...

  6. 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新

    本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...

  7. 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新

    [原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...

  8. 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新

    上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...

  9. iOS开源项目周报0105

    由OpenDigg 出品的iOS开源项目周报第四期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开发方面的开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. He ...

随机推荐

  1. 【Tomcat】部署Web到tomcat的四种方式

    一.静态部署 1.直接将web项目文件件拷贝到webapps 目录中     Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用.所以可以将JSP ...

  2. Number Sequence(hdu4390)

    Number Sequence Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tot ...

  3. .net解决Xss攻击

    首先要明白什么是Xss攻击 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中.比如这些代码包括HTML代码和客户端脚本.攻击者利用XSS漏 ...

  4. python-解释器模式

    源码地址:https://github.com/weilanhanf/PythonDesignPatterns 说明: 解释器模式在面向对象语言实现的编译器中得到了广泛的应用.但是此模式进适用于建大的 ...

  5. JavaScript判断值是否是NaN

    第一种方法: if (!Number.isNaN) { Number.isNaN = function (n) { return ( typeof n === 'number' && ...

  6. 【读书笔记】iOS-网络-理解错误源

    考虑一个字节是如何从设备发往运程服务器以及如何从远程服务器将这个字节接收到设备,这个过程只需要几百毫秒时间,不过确要求网络设备都能正常工作才行.设备网络和网络互联的复杂性导致了分层网络的产生.分层网络 ...

  7. 如何扩展Linux虚拟内存文件系统

    由于ArcGIS GeoAnalystics Server和Raster Analytics Server大数据分析平台都是基于Spark分析平台的,其部署服务器除了要求具有高内存特点外,也需要确保相 ...

  8. python学习笔记之——python安装mysqldb后,pycharm导入还是报错问题

    在安装mysqldb过程中遇到,本来已经安装了mysqldb了,但是在pycharm中import   MySQLdb还是报错找不到该模块的问题.解决方法如下:1.file->settings ...

  9. Prometheus Node_exporter 之 Disk Datail /proc/diskstats

    Disk Datail /proc/diskstats 1. Disk IOps Completed type: GraphUnit: I/O ops/sec(iops)Label: IO read( ...

  10. 理解 Azure 平台中虚拟机的计算能力

    虚拟化平台至今已经发展了十多年的时间.其中 Hyper-V 技术现在也已经是第三代版本.用户对于虚拟化计算也越来越接受,这也有了公有云发展的基础.然而在很多时候,用户在使用基于 Hyper-V 的 A ...