什么是Tangram?

Tangram [ 七巧板 ]

项目简介

Github: github.com/itsonglei/T…javascript

项目目的

  • 将团队内部多个脚手架,整理合一。

团队将来只知道有 tangram install xx  tangram update xx  tangram run xx 便可。html

  • 经过 tangram作一些团队私服组件管理
  • 实现便捷工具,提升研发效率

团队成员在建立新功能时,都会频繁的复制旧页面的页面配置,组件配置。咱们但愿可以经过实现 tangram init page  or tangram init component 帮助到研发同窗,快速开发。前端

  • 预先研究 Lerna jest travis

项目架构

├─ node_modules				        -- 全局依赖包
├─ packages					-- Lerna 包目录
	├─ cli					-- tangram/cli 包
		├─ .temp			-- 临时文件存储
		├─ bin				-- 可执行文件
		├─ dist				-- ts 输出文件夹,可供 bin 直接使用
		├─ node_modules		        -- tangram/cli 依赖包
		├─ src				-- tangram/cli 包主要源码(ts)
			├─ config		-- tangram/cli 项目配置
			├─ install		-- tangram/cli install 功能实现
			├─ util			-- tangram/cli 工具类
			├─ install.ts	        -- tangram/cli 入口
		├─ .babelrc			-- Babel 配置文件
		├─ package.json 	        -- tangram/cli 项目的配置信息文件
		├─ tsconfig.json	        -- ts 配置文件
├─ .czrc					-- changelog 插件依赖配置
├─ .eslintrc.js				        -- eslit 配置文件,主要是定义 globals
├─ .gitignore				        -- 忽略一些不须要提交的文件
├─ .travis.yml				        -- Travis CI 配置文件
├- CHANGELOG.md				        -- 更新迭代目录
├─ jest.config.js			        -- jest 配置文件
├─ lerna.json				        -- Lerna 配置文件
├─ package.json				        -- 全局项目的配置信息文件
├─ PLAN.md					-- 罗列项目计划
└─ README.md
复制代码

知识点

lerna

你们回想下咱们在安装 babel 的时候是经过什么命令, npm install babel  仍是 npm install [@babel/babel-core](#)   ,一般咱们都是经过npm install [@babel/babel-core](#)安装babel 相对应的模块的,这是因为 babel 进行了分包管理的缘故。java

Lerna是一个工具,它优化了使用git和npm管理多包存储库的工做流。
引入lerna后,它为开发人员提供了一种管理多packages javascript项目的方式。node

下面是一些特性git

  1. 自动解决packages之间的依赖关系
  2. 经过git 检测文件改动,自动发布
  3. 根据git 提交记录,自动生成CHANGELOG
  4. 采用Independent模式
  5. eslint规则检查
  6. prettier自动格式化代码
  7. 提交代码,代码检查hook
  8. 遵循semver版本规范

Travis CI

Travis CI 提供的是持续集成服务(Continuous Integration,简称 CI)。它绑定 Github 上面的项目,只要有新的代码,就会自动抓取。而后,提供一个运行环境,执行测试,完成构建,还能部署到服务器。
持续集成指的是只要代码有变动,就自动运行构建和测试,反馈运行结果。确保符合预期之后,再将新代码"集成"到主干。
持续集成的好处在于,每次代码的小幅变动,就能看到运行结果,从而不断累积小的变动,而不是在开发周期结束时,一会儿合并一大块代码。github

Jest

Jest 是 Facebook 出品的一个测试框架,相对其余测试框架,其一大特色就是就是内置了经常使用的测试工具,好比自带断言、测试覆盖率工具,实现了开箱即用。
而做为一个面向前端的测试框架, Jest 能够利用其特有的快照测试功能,经过比对 UI 代码生成的快照文件,实现对 React 等常见框架的自动测试。typescript

Jest既简单又强大,内置支持如下功能:npm

  • 灵活的配置:好比,能够用文件名通配符来检测测试文件。
  • 测试的事前步骤(Setup)和过后步骤(Teardown),同时也包括测试范围。
  • 匹配表达式(Matchers):能使用指望expect句法来验证不一样的内容。
  • 测试异步代码:支持承诺(promise)数据类型和异步等待async / await功能。
  • 模拟函数:能够修改或监查某个函数的行为。
  • 手动模拟:测试代码时能够忽略模块的依存关系。
  • 虚拟计时:帮助控制时间推移。

TypeScript

TypeScript 是有类型定义的 JS 的超集,包括 ES五、ES5+ 和其余一些诸如泛型、类型定义、命名空间等特征的集合,为了大规模 JS 应用而生编程

优势:

  • 始于JavaScript,归于JavaScript,typescript是JavaScript的超集,因此它能够重用JavaScriptd代码,使用JavaScript的库
  • JavaScript用的优势它都有,跨浏览器、跨操做系统等
  • 面向对象的编程思想,强大的类型检查
  • 开源大法好

项目已开源,还在创做初期,但愿你们踊跃提交 issue 或 pull request。

相关文章
相关标签/搜索