在创建 Node 项目时,需要配置很多基础设置和包依赖。如果每次都需要从头开始,效率会非常低。我们配置一个通用的环境,这样会在之后的工作中变得更有效率。如同下棋时弈手起手落子,久经考验且之后变化多端。
TypeScript VS JavaScript
关于 TypeScript 和 JavaScript 的选择,网络上的讨论很多。笔者比较倾向于 TypeScript ,比起使用 TypeScript 带来的问题,使用它的好处是显而易见的:更好的协作、更高的代码质量、更轻松的维护工作。因此在这个起手式项目中,我们采用 TypeScript 。
创建项目
建立初始仓库
创建一个新文件夹,并初始化 Git :
1 | mkdir node-backend-example |
按步骤输入信息,package.json
内容如下:
1 | { |
关于 License 的选择,可以参考这篇文章^license。
提交修改:
1 | git add package.json |
添加 .gitignore
这里使用gi
进行配置,更多操作参考 gitignore.io[^gitingnore]
1 | export function gi() { curl -sLw "\n" https://www.gitignore.io/api/\$@ ;} |
提交修改:
1 | git add .gitignore |
添加代码检查: ESLint
1 | yarn add -D eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin |
.eslintrc.js
内容如下,更多配置请参考ESLint Configuring[^eslint]
1 | module.exports = { |
提交修改:
1 | git add .eslintrc.js package.json yarn.lock |
是否将yarn.lock
提交到版本控制系统的解释请参考此文章[^yarn-lock]。
添加代码格式化: Prettier
1 | yarn add -D typescript |
.prettierrc.js
内容如下:
1 | module.exports = { |
修改.eslintrc.js
:
1 | module.exports = { |
提交修改:
1 | git add .prettierrc.js .eslintrc.js package.json yarn.lock |
添加 commit 检查:commitlint
1 | yarn add -D @commitlint/{cli,config-conventional} |
提交修改:
1 | git add commitlint.config.js yarn.lock package.json |
添加husky
:
1 | yarn add -D husky |
在package.json
中添加以下字段:
1 | "husky": { |
提交修改:
1 | git add package.json yarn.lock |
自动格式化:lint-staged
1 | yarn add -D lint-staged |
在package.json
中添加以下字段:
1 | "husky": { |
提交修改:
1 | git add package.json yarn.lock |
参考
[^gitingnore]: gitingnore 创建工具
[^eslint]: eslint 配置文档
[^yarn-lock]: yarn.lock 说明
本文首发于 mediumcn