vscode와 터미널에서 rubocop, eslint 등 설정 방법求助

린팅 테스트에 실패하는 코드를 제출하는 것이 지긋지긋합니다. 때로는 GitHub에서 rubocop 또는 yarn eslint(그리고 기타 유사한 명령어)를 복사해서 터미널에 붙여넣으면 작동하기도 하지만, 지금은 그것도 작동하지 않습니다.

다음과 같은 오류가 발생하고 있습니다.

 No parser could be inferred for file: ...

일부 파일에서는 특정 조건 하에 VS Code가 저장 시 올바르게 포맷을 재구성하고 문법 오류가 있다고 알려주기도 하지만, 지금은 그것도 작동하지 않습니다.

무엇을 원하시나요?

화면 공유(zoom 등)를 통해 제가 진행 상황을 확인하면서, 다음과 같은 문제를 해결해 주셨으면 합니다.

  • VS Code가 저장 시 포맷을 수정하거나 문제가 있는 부분을 알려주는 등 해야 할 일을 모두 수행하도록 하는 것
  • 명령줄에서 yarn eslint 및 린팅 테스트에 포함된 기타 도구를 실행할 수 있도록 하는 것

언제까지 완료되길 원하시나요?

정신이 나가떨어지기 전에요.

이 작업에 제공할 수 있는 예산(USD)은 얼마인가요?

저는 사실상 Ubuntu와 동일한 Pop!_OS를 사용하고 있습니다.

이 문제를 해결할 수 있을 것이라고 충분히 확신하신다면, 표준 요금으로 1시간분의 시간을 지불할 준비가 되어 있습니다. 만약 10분 만에 해결할 수 있다면, 1시간분의 비용을 기꺼이 지불하겠습니다. 모두에게 이로운 일입니다.

2개의 좋아요

Jay,

짜증나죠?

저는 이런 경우에 이렇게 합니다:

  • 인기 있는 플러그인의 CI 워크플로우를 확인합니다.
  • 플러그인 루트에 있는 관련 설정을 살펴봅니다.

Chatbot을 위한 제 린팅 테스트는 여기서 확인할 수 있습니다:

플러그인 디렉터리에서 eslint와 prettier를 실행할 수 있고, rubocop는 discourse 디렉터리에서 실행할 수 있다고 생각합니다.

이로 인해 문제가 해결되었다면 Development 주제로 전환해 주세요. 환영합니다 :slight_smile:

1개의 좋아요

제가 하는 일은 GitHub - discourse/discourse-plugin-skeleton: Template for Discourse plugins · GitHub 과 GitHub - discourse/discourse-theme-skeleton: Template for Discourse themes · GitHub 의 워크플로를 그대로 복사하는 것입니다. (스트라이프 플러그인에 의존하는 제 대시보드 플러그인에 맞게 플러그인 쪽을 약간 수정해야 합니다.) 이 정도면 린팅을 수행하는 데 충분하다고 믿고 있습니다.

하지만 제가 원하는 것은 커밋하기 전에 VS Code가 린팅을 수행하는 것입니다. 예전에는 잘 작동했는데, 지금은 멈춰 버렸습니다. 20년 전 제가 Emacs를 알았던 것처럼 VS Code에 대해 잘 아는 누군가가 "Ctrl-P를 누르고, 포맷팅 도구를 설치하는 작업을 하고, 설정 파일을 수정해서 제대로 작동하게 하세요"라고 알려주면, 다시 Ctrl-S를 눌러 handlebars, javascript, 기타 파일들을 예쁘게 포맷팅하고, 정의했지만 사용하지 않은 귀찮은 변수들을 모두 찾아낼 수 있을 텐데 싶습니다.

조금 더 가까워지다

그래서 저는 이렇게 했습니다:

      npm install --global yarn
      yarn add prettier

이제 discourse-prettier가 있습니다:

#!/usr/bin/env bash
if [ -n "$(find assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)" ]; then
  yarn prettier --write "assets/**/*.{scss,js,es6,hbs}"
fi
if [ -n "$(find admin/assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)" ]; then
  yarn prettier --write "admin/assets/**/*.{scss,js,es6,hbs}"
fi
if [ 0 -lt $(find test -type f \( -name "*.js" -or -name "*.es6" \) 2> /dev/null | wc -l) ]; then
  yarn prettier --write "test/**/*.{js,es6}"
fi

if [ -n "$(find assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)" ]; then
  yarn prettier --list-different "assets/**/*.{scss,js,es6,hbs}"
fi
if [ -n "$(find admin/assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)" ]; then
  yarn prettier --list-different "admin/assets/**/*.{scss,js,es6,hbs}"
fi
if [ 0 -lt $(find test -type f \( -name "*.js" -or -name "*.es6" \) 2> /dev/null | wc -l) ]; then
  yarn prettier --list-different "test/**/*.{js,es6}"
fi

이것으로 제 문제의 일부는 해결되었습니다. 이제 최소한 커맨드 라인에서 prettier를 실행할 수 있게 되었습니다. 하지만 여전히 VS Code가 이 지저분한 일을 대신해 주기를 바라며 도움을 주고 싶습니다. 저장이 될 때 eslint(또는 rubocop 등)가 실행되어 문제를 수정하거나, 수정할 수 없음을 알려주면 좋겠습니다. 에디터가 제 코드를 작성해 주어야 한다고 생각할 만큼 나이는 들지 않았지만, 포맷팅은 해 주어야 한다고 생각할 만큼도 나이는 들지 않았습니다.

예전에는 누군가가 사용하는 VS Code 플러그인을 추천하는 토픽이 있었는데, 그 덕분에 도움이 되었지만 지금은 찾을 수 없습니다.

1개의 좋아요

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.