快速搭建一个TypeScript项目
快速搭建一个TypeScript项目
在团队开发中为了更好的协作,我们应该在项目中制定各种规则,比如:代码风格、变量命名、文件命名、git commit 提交格式等等。 这篇文章就介绍如何搭建快速搭建一个具有自定义规则的 TypeScript 项目。
创建项目
1 | mkdir ts-project |
创建.gitignore
1 | server |
创建.dockerignore
1 | _tmp |
安装配置typescript
安装 typescript 作为开发阶段的依赖项
1 | yarn add typescript -D |
在根目录新建 tsconfig.json,配置项具体的意义可以参考 ts 官方文档
1 | npx tsc --init |
配置文件
1 | { |
安装 @types/node 让 node 的核心包具备类型提示
1 | yarn add @types/node -D |
在根目录新建 src 目录,用于存放所有的 TypeScript 源文件,然后在 src 下新建 index.ts 作为入口文件
1 | console.log('Hello TypeScript!'); |
在开发阶段为了能直接执行并且监听 ts 文件的变化,安装 ts-node-dev
1 | yarn add ts-node-dev -D |
在 package.json 中定义一个启动脚本
1 | "scripts": { |
运行
1 | $ yarn start |
安装jest测试框架
https://juejin.cn/post/6844903888512876558
代码风格prettier
不管团队中的成员用的是什么编辑器,我们都应该保持一致的代码风格,这就需要使用 prettier
1 | yarn add prettier -D |
然后在根目录下新增一个prettier.config.js(或者.prettierrc.js),用于定义代码格式化的规则
1 | module.exports = { |
.prettierignore
1 | /dist/* |
在 package.json 中新增一条 script
1 | "scripts": { |
运行 yarn style:prettier 将会自动格式化 src 目录下的所有 .ts 文件
1 | yarn style:prettier |
安装eslint
安装 eslint 用于检查项目文件的命名、变量的命名等等
1 | yarn add eslint -D |
在根目录下新建 tslint.json,根据自己的需要定义 rules
.eslintrc
1 | { |
.eslintignore
1 | *.sh |
在 package.json 中新增一条 script
1 | "scripts": { |
运行 yarn style:lint,会执行 lint 检查
1 | yarn style:lint |
安装stylelint
1 | yarn add stylelint -D |
配置方式
按顺序查找,任何一项有值,就会结束查找
- 在 package.json 中的
stylelint
属性指定规则 - 在 .stylelintrc 文件中指定,文件格式可以是
JSON
或者YAML
。也可以给该文件加后缀,像这样: .stylelintrc.json , .stylelintrc.yaml , .stylelintrc.yml , .stylelintrc.js - stylelint.config.js 文件,该文件 exports 一个配置对象
stylelint.config.js
1 | module.exports = { |
.stylelintignore
1 | /dist/* |
在 package.json 中新增一条 script
1 | "scripts": { |
安装commitizen和changelog
安装 commitizen,让我们的项目具有统一的 git commit 规范
1 | npm install -g commitizen |
安装changelog
1 | npm install -g conventional-changelog conventional-changelog-cli |
支持Angular的Commit message格式
1 | commitizen init cz-conventional-changelog --save --save-exact |
执行后 package.json 中会多出 commitizen 的配置项
1 | "config": { |
将所有的 git commit 操作替换成 git cz
在package.json中添加一条scripts
1 | { |
执行git cz
1 | git cz |
生成changelog
1 | yarn changelog |
安装commit规范检查
我们还需要在 git 提交的时候进行 commit 规范的检查,首先安装 validate-commit-msg 并在根目录中新建一个 .vcmrc 文件用于定义 commit 的验证规则
1 | yarn add validate-commit-msg -D |
.vcmrc
1 | { |
然后安装 husky 让我们可以很方便的定义 git hooks
1 | yarn add husky -D |
在 package.json 中定义 git hooks,使用 validate-commit-msg 来检查 commit 格式
1 | "husky": { |
现在如果提交的 commit 不符合 .vcmrc 定义的格式就会提交失败
1 | $ git commit -m "2223" |
现在我们还希望能在 commit 时自动执行代码格式化和语法检查,要使用一条命令执行多项操作可以安装 npm-run-all
1 | yarn add npm-run-all -D |
npm-run-all 提供两个命令 run-s 串行执行多条命令 run-p 并行执行多条命令,在 package.json 中定义一个 script,用于串行执行所有以 style: 开头的 script
1 | "scripts": { |
运行一下,看到确实执行了两条命令
1 | $ yarn style |
修改 package.json 定义的 git hooks
1 | "husky": { |
试着进行一次提交
1 | $ git add . |
确实在提交前格式化了所有代码文件,并且进行了 commit 检查,至此我们的团队协作项目就搭建好了,再也不用担心五花八门的代码格式和 commit 提交说明了。