제출 정리
우리가 소프트웨어를 작성할 때, 우리는 항상 코드 라이브러리가 깨끗하고, 읽을 수 있으며, 사용하지 않은 부분이 없고, 파일 전체가 일치하기를 바란다.그러나 이것은 수동으로 처리해야 할 바쁜 임무이다.
이 강좌에서git를 제출하기 전에 자동 코드 선별과 미화를 쉽게 설정하는 방법을 보여 드리겠습니다.
개시하다
이 자습서는 React를 사용하기 때문에 첫 번째 단계는 새로운 React 프로그램을 만드는 것입니다.
나는 CRA 도구로 새로운 React 프로그램을 만들 것이다.
# scaffold new react application
npx create-react-app react-husky-setup
# navigate to the newly created application
cd react-husky-setup
다음은 개발 의존항으로 필요한 모든 도구를 설치할 것입니다.나는 우리가 설치해야 할 모든 의존항을 개술한 후에야 내가 줄곧 이야기해 왔던 슈퍼 능력을 해제할 수 있다.
[] PrettierJS 설치
[] EsLint 및 EsLint 플러그인 설치
[] Lint-staged 설치
[]Intall HuskyJS
[] 놀라움
Prettier 설치
공식 홈페이지에 따르면
Prettier is an opinionated code formatter with support for: JavaScript, including ES2017 , JSX, Angular, Vue, Flow, TypeScript; CSS, Less, and SCSS, HTML, JSON, GraphQL, Markdown, including GFM and MDX and YAML.
It removes all original styling* and ensures that all outputted code conforms to a consistent style..
우리는 prettier를 사용하여 심각한 코드를 포맷하고 제출하기 전에 코드 포맷을 실행할 것입니다.더 예쁜 거 해달래요.
# install with yarn
yarn add prettier --dev --exact
# install with npm
npm install --save-dev --save-exact prettier
그리고 루트 디렉터리에 .prettierrc
파일을 만듭니다. 이것은 우리의 표준에 따라prettier를 설정할 수 있도록 합니다.이것은 내 기본 구성입니다.
{
"printWidth": 100,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": false,
"trailingComma": "none",
"bracketSpacing": true,
"jsxBracketSameLine": false,
"jsxSingleQuote": false,
"proseWrap": "always",
"htmlWhitespaceSensitivity": "css",
"quoteProps": "as-needed"
}
ES Lint 및 ES Lint 플러그인 설치
ESLint is a pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript. ESLint helps you maintain your code quality with ease.
# install with yarn
yarn add eslint babel-eslint eslint-config-prettier eslint-plugin-html eslint-plugin-prettier --dev
# install with npm
npm install --save-dev eslint babel-eslint eslint-config-prettier eslint-plugin-html eslint-plugin-prettier
우리는 eslint와 eslint 기반 플러그인을 설치하고 있습니다.다음 표에는 추가 플러그 인 및 용도가 나와 있습니다.babel-eslint
이렇게 하면 실험 특성(예: 새 특성)을 포함하여 유효한 모든 Babel 코드를 삭제할 수 있습니다.eslint-config-prettier
이렇게 하면 불필요하거나 Prettier와 충돌할 수 있는 모든 규칙이 닫힙니다.eslint-plugin-html
이것은 HTML에 포함된 내장 스크립트를 eslint에서 삭제할 수 있도록 합니다eslint-plugin-prettier
ESLint 규칙으로서 더 멋지게 작동하고 차이를 단일 ESLint 문제로 보고합니다.루트 디렉터리에
.eslintrc
파일을 만들어서eslint를 설정해야 합니다.이것은 내 기본 구성입니다.{
"env": {
"browser": true,
"es6": true
},
"extends": ["eslint:recommended", "react-app", "prettier"],
"globals": {
"Atomics": "readonly",
"SharedArrayBuffer": "readonly"
},
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"ecmaVersion": 2018,
"sourceType": "module"
},
"plugins": ["react-hooks"],
"rules": {
"linebreak-style": ["error", "unix"],
"quotes": ["error", "double"],
"semi": ["error", "always"],
"no-console": 2,
"no-alert": 2,
"no-func-assign": 1,
"no-invalid-regexp": 1,
"no-unreachable": 1,
"default-case": 1,
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "warn"
}
}
실밥을 설치하다
Lint staged는 전체 프로젝트에서 Lint 프로세스가 느리고 전체 Lint의 일부 Lint 결과는 무관할 수 있기 때문에 Lint staged 코드만 허용합니다.따라서 lint staged는 우리가 lint를 staged 코드만 사용하는 범위에 제한하여 과정을 더욱 빠르고 효율적으로 하는 데 도움이 된다. (왜냐하면 우리는 lint가 제출하고자 하는 코드만 필요하기 때문이다.)
# install with yarn
yarn add lint-staged --dev --exact
# install with npm
npm install --save-dev lint-staged
그리고 우리는 package.json
파일에 설정 대상을 포함해서 lint stage를 설정할 것이다#... Rest package.json
"lint-staged": {
"**/*.+(js|ts|graphql|yml|yaml|vue)": [
"eslint --fix",
"prettier --write",
"git add"
],
"*/*.+(css|sass|less|scss|json|html)": [
"prettier --write",
"git add"
]
}
Here we are configuring lint-staged to run `eslint, prettier` then perform a new `git add` to staged codes for all `js,ts,graphql,yaml,vue` files and to only run `prettier` and a `git add` for `css, sass, less, scss, json, html` files.
HuskyJS 설치
우리가git를 사용할 때, 우리는git갈고리를 사용할 수 있는 권한을 자동으로 가진다. git갈고리는 우리가 각종 갈고리 이벤트를 낚을 수 있고, 이 이벤트 이전이나 이후에 함수를 실행할 수 있도록 한다.프로젝트의
.git/hooks
디렉터리를 검사하면git 갈고리로 사용할 수 있는 목록을 볼 수 있습니다.문서에서 지원하는 갈고리 목록을 볼 수 있습니다.그러나 이 강좌에서 우리는
pre-commit
갈고리에만 관심을 갖는다.이 갈고리는git 제출 작업 전에 실행됩니다.git 갈고리를 사용하는 단점은 bash 스크립트로만 작성할 수 있다는 것이다.그러나 우리는 이 목적을 위해 새로운 언어를 배우고 싶지 않다. 이것이 바로 헤스키가 역할을 발휘하는 곳이다.
Husky는 git 갈고리를 쉽게 작성하고 팀원들이 쉽게 공유할 수 있도록 합니다.
# install with yarn
yarn add husky --dev
# install with npm
npm install --save-dev husky
husky를 사용자 정의 pre-commit
갈고리로 설정하려면, 가방에 husky 설정을 포함해야 합니다.json 파일#... Rest package.json
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
이것은 husky가 lint-staged
파일에서 package.json
정의한 명령을 실행하는 것을 알려 줍니다.위엄 풀기
마지막으로, 우리는 모든 설치와 설정을 완성했다. 내
.eslintrc
규칙에 따라, 나는 내 코드 라이브러리에서 console
문장에 오류 표시를 사용했기 때문에, console.log
파일에 App.js
문장을 추가하고,git에 코드를 제출하려고 시도했다.아하!Eslint는 커밋을 복원하고 오류가 있는 행을 볼 수 있도록 console 문을 표시합니다.
Reference
이 문제에 관하여(제출 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/olayemii/cleaner-react-git-commits-9b3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)