The dev workflow used by The Great Tower Edu Inc.
npm install towerflowtowerflow 是一个面向使用typescript开发项目的流程化工具,适用于前端网站和nodejs等多种项目的开发。
工具可在 macOS, linux, window 下运行。
``
npm i towerflow -g
towerflow --help
`
使用 towerflow 创建web网站项目
``
towerflow init hello-world --template web-app
该命令会在当前目录下生成新的目录 hello-world, 并自动安装项目所需依赖
在该目录中,项目结构如下
``
hello-world
|————node_modules
|————README.md
|————package.json
|————package-lock.json
|————typeings
| |————workaround.d.ts
| |————your-module
| |————index.d.ts
|
|————public
| |————index.html
| |————favicon.ico
|
|————src
| |————App.tsx
| |————index.tsx
|
|————test
| |————app.tsx
|
你不需要任何复杂的配置,在初始化命令结束后,即可开始运行你的项目
进入你的项目目录
``
cd hello-world
在当前目录下,运行项目启动命令
``
towerflow start
此时你的项目将运行在开发者模式下,在你的浏览器中打开 http://localhost:8080
开发模式是热更新模式,网页不会刷新就能应用你在项目中做出的更改
在当前目录下,运行测试命令
``
towerflow test
此时工具将会运行test目录下编写测试用例,测试框架使用的是jest
关于更多测试相关的文档,请参考 https://jestjs.io/
在当前目录下,运行项目打包命令
``
towerflow production
此时工具将会使用生产模式构建你的项目,并在根目录中的output文件中生成编译后的代码
该模式下会最大程度的优化你的代码,并在生成的文件名中加入hash
towerflow主要有构建流程主要分为两种,webpack 和 tsc
适用于web-app和web-lib
使用webpack和webpack-dev-server来构建前端网站和开前端模块组件
> web-lib在开发时使用webpack流程,打包时使用tsc流程
适用于node-app、node-lib和web-lib
使用tsc来编译nodejs的服务器项目和node模块以及前端组件模块
所有项目的打包生成的代码都存放于output目录中,测试代码都存放于test目录中,类型文件都存放于typings目录中
开发代码存放于lib目录下
开发代码存放于src目录下,若要编写有交互的命令行工具,请在bin目录下编写入口代码
开发代码存放于lib目录下
开发代码存放于src目录下,公共静态文件存放于public目录下
项目初始化命令
name为目标目录名称
``
towerflow init hello-word
指定需要初始化的项目类型
如创建node-lib项目
``
towerflow init hello-world --template node-lib
目前支持项目类型有
|项目类型|项目说明|
|---|---|
|node-lib|node模块项目|
|node-app|node服务器项目|
|web-lib|web模块项目|
|web-app|web网站项目|
若目标文件夹存在,使用该参数,则会强制删除目标文件夹,并初始化新的项目
``
towerflow init hello-world --template node-lib --force
用于跳过npm安装依赖的步骤,若使用该命令,则需手动安装依赖
``
towerflow init hello-world --template node-lib --bypass-npm
使用cnpm安装项目依赖,若要使用该命令,请确保已经全局安装cnpm
``
towerflow init hello-world --template node-lib --use-cnpm
以开发模式运行项目
> 在tsc的开发流程中,则为watch模式
``
towerflow start
运行项目的测视用例,所有测试文件都应存放于test目录中
``
towerflow test
项目打包命令,以生产模式打包项目,打包过后的文件将存放于output目录中
``
towerflow build
显示可用项目模板
``
towerflow list
生成项目配置文件,如.prettierrc,tsling.js,tsconfig.json,jest.config.js等,生成的配置文件仅用于帮助开发者编译器配置项目,不会作于开发、打包等的规范检查
``
towerflow assistant --generate-config
###
移除项目开发目录中的配置文件
```
towerflow assistant --remove-config