ESLint 오류의 자동 수정으로 디버그 코드가 제대로 지워지는 문제
추가
다음은 ESLint v5.1.0 이전의 문제와 그 해결 방법을 설명합니다.
v5.1.0 이상 버전에서는
debugger
문이 자동 수정되지 않습니다.@mysticatea 씨 지적 해 주셔서 감사합니다
문제
편집기 플러그인 등에서 ESLint 오류 자동 수정을 사용하도록 설정하면 디버깅 중에 문제가 발생할 수 있습니다.
예를 들어
no-debugger
의 규칙을 사용하면 코드에 포함된 debugger
문이 저장될 때 자동으로 지워지게 됩니다. 이제 디버깅을 할 수 없습니다.그렇다고는 해도
debugger
의 지워 잊을 것을 프로덕션에 내버리는 위험이 있으므로, 규칙을 삭제할 수는 없습니다.특정 규칙을 CI 환경에서만 사용하도록 설정
따라서
no-debugger
와 같은 로컬 개발 환경에서는 활성화하지 않지만 끄지 않을 규칙은 CI 환경에서만 활성화하는 방법을 권장합니다.그렇게 하면, 디버그시에 곤란한 일도 없고, 프로덕션에 디버그 코드가 부주의하게 배치되어 버리는 것도 막습니다.
환경별로 특정 규칙을 켜고 끕니다.
환경별로 특정 규칙의 on/off를 전환하려면 환경 변수를 사용할 수 있습니다.
예를 들어,
.eslintrc
파일이 있다고 가정합니다..eslintrc
{
"rules": {
"no-debugger": "error",
}
}
이것을 이렇게 다시 씁니다.
.eslintrc.js
// 環境変数は文字列として取得されるので注意!!
const ERROR_IN_CI = process.env.CI === "true" ? "error" : "off";
module.exports = {
rules: {
"no-debugger": ERROR_IN_CI,
}
};
CI로 자주 사용되는 CircleCI나 TravisCI에서는 기본적으로
CI
라는 환경 변수에 true
가 설정되어 있으므로 이 값을 이용하여 환경별로 전환할 수 있습니다.다른 CI를 사용하고
process.env.CI
에서 값을 얻을 수 없다면 아래와 같이 npm-scripts
를 쓰고 환경별로 호출하는 것이 좋습니다.package.json
{
"scripts": {
"eslint:dev": "eslint 'src/**/*.js'",
"eslint:ci": "CI=true eslint 'src/**/*.js'",
}
}
Reference
이 문제에 관하여(ESLint 오류의 자동 수정으로 디버그 코드가 제대로 지워지는 문제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hogesuke_1/items/681ef09ed47373e52ce8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)