背景

最近想要自己做开始一个项目,然后发现好像挺久没有出 从 0 开始 一个项目了,对项目的一些工程化方面的流程有点生疏了,感觉就是知道一个大概的流程,很多都要靠搜索引擎来帮忙,我就想整理一下,对于前端项目从零开始的一个工程化的流程。

1. 初始化项目

yarn init -y

或者

npm init -y

这个没啥好说的,初始化 yarnnpm 包,如果是 monorepo 也可以使用 pnpmpnpm 会比 yarnnpm 快一些,包管理也不一样,我也正在学习,后面再做学习记录分享。

2. Eslint 和 Prettier

  1. 安装和初始化
yarn add eslint -D
npx eslint --init

yapi windows 初始化mongodb yarn初始化_前端


我们一般使用 eslint + prettier,把代码检查的任务交给 prettier,所以我们选择

To check syntax and find problems 这个选项就可以啦

yapi windows 初始化mongodb yarn初始化_初始化_02


然后一步一步的按照自己的项目需要往下选择就好啦,选择什么框架呀,需不需要 typescript 什么的

  1. 创建 .eslintrc.json
{
  "env": {
    "browser": true,
    "es2021": true
  },
  "extends": [
    "eslint:recommended",
    "plugin:@typescript-eslint/recommended",
    "prettier",
    "plugin:prettier/recommended"
  ],
  "overrides": [],
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaVersion": "latest",
    "sourceType": "module"
  },
  "plugins": ["@typescript-eslint", "prettier"],
  "rules": {
    "prettier/prettier": "error",
    "no-case-declarations": "off",
    "no-constant-condition": "off",
    "@typescript-eslint/ban-ts-comment": "off"
  }
}

rules 可以根据个人喜好或者团队风格来确定,也可以后期遇到的时候再添加,开始的时候不需要考虑那么多规则

  1. 解决 eslintprettierrc 冲突问题
yarn add eslint-config-prettier eslint-plugin-prettier -D

或者

npm install eslint-config-prettier eslint-plugin-prettier -D

在上面的 .eslintrc.json 已经把 prettier 的配置加上去了,所以安装完了就可以用啦,记得在编辑器中设置格式化工具,用 prettier 格式化,在 VSCode 中安装相应的插件就好了。

  1. 添加 lint scriptpackage.json 中添加一个格式化脚本,目的就是在提交代码(commit)之前对代码做格式化处理。
"scripts": {
    "lint": "eslint --ext .js,.ts,.jsx,.tsx --fix --quiet ./packages"
  }

3. git lint

  1. 安装 husky
yarn add husky -D

或者

npm install husky -D
  1. 添加 pre-commit 钩子
npx husky install 
 npx husky add ./husky/pre-commit "yarn lint"

或者

npx husky install 
 npx husky add ./husky/pre-commit "npm run lint"
  1. commit lint
npm install commitlint @commitlint/cli @commitlint/config-conventional -D

或者

npm install commitlint @commitlint/cli @commitlint/config-conventional -D
  1. 创建 .commitlintrc.js
module.exports = {
  extends: ['@commitlint/config-conventional']
}
yarn husky add .husky/commit-msg "npx --no-install commitlint -e $HUSKY_GIT_PARAMS"

或者

npm run  husky add .husky/commit-msg "npx --no-install commitlint -e $HUSKY_GIT_PARAMS"

总结

我们就规范了代码风格和 git commit 风格,像我们传统的 react 或者 vue 项目,不管是用脚手架创建的项目还是自己从 0 搭建的都是可以用这个流程去配置的。其实还有一个是项目的打包工具的选择和配置。对于怎么选择打包工具,这里有一个权威的网站,里面有介绍主流打包工具的优劣,可以帮助我们做选择。