SSG에서 `--config` 옵션에 대한 지원 추가
2649 단어 opensourcebeginnersgitssg
개요
ririo-ssg
는 비슷한 요구 사항을 가진 Javascript로 프로그래밍되었다는 점에서 지난 몇 주 동안 함께 작업한 다른 정적 사이트 생성기와 비슷합니다. ririo-ssg
는 .txt
및 .md
파일을 정적 사이트로 변환할 수 있는 훌륭한 CLI 도구입니다. 그러나 이 도구는 .json
형식의 구성 파일과 함께 작동하여 도구의 기본 동작을 재정의할 수 없습니다.문제 제기
늘 그렇듯이 issue
ririo-ssg
Github 저장소를 제출하는 것으로 시작했습니다. 소유자는 나에게 문제를 할당하여 신속하게 응답했습니다. 할당 후 SSG가 구성 파일을 처리할 수 있도록 염두에 두었던 구현 작업을 시작했습니다JSON
.코드 작성
코드 작성은 처음에 생각했던 것만큼 어렵지 않았습니다. 코드를 작성하기 위해 새 git
branch
을 생성하여 시작했습니다. 또한 git remote
라는 이름의 upstream
를 설정하여 원본 저장소와 동기화 상태를 유지했습니다.ririo-ssg
는 commander
모듈을 사용하여 commands
를 처리합니다. 이는 간단합니다. CLI가 인수가 있는 options
및 --config
옵션과 함께 작동할 수 있도록 -C
를 업데이트해야 했습니다. JSON
파일의 config
개체를 구문 분석하는 작업은 Javascript에 내장된 JSON.parse
함수가 있어 작업을 수행할 수 있으므로 훨씬 더 쉬웠습니다.PR 만들기
-C
옵션에 대한 초기 구현으로 PR을 생성했습니다. 소유자로부터 피드백을 받고 이후 커밋에 변경 사항을 반영했습니다.직면한 도전
JSON
구성 파일로 읽을 새 파일을 만들었습니다. 그러나 그렇게 함으로써 일부 기능에서 몇 가지 문제가 발생했습니다. 코드 소유자와 상의하고 대신 그가 권장하는 방식으로 작업했습니다. .env
파일을 읽고 쓰는 것이었습니다. 이것은 SSG가 readFile
모듈에서 writeFile
및 fs
와 같은 기능을 활용했기 때문에 문제였습니다. 따라서 .env
또는 -C
옵션을 사용하여 도구를 여러 번 실행하지 않는 한 -config
파일의 일부 값을 덮어쓰지 않습니다. readFile
함수를 readFileSync
로, writeFile
를 writeFileSync
로 교체하여 이 문제를 해결할 수 있었습니다. 코드를 동기 함수로 교체하면 모든 변경 사항이 .env
파일에 제대로 반영될 때까지 프로그램 실행이 중단됩니다. 결과
사용자는 이제
config
또는 JSON
옵션을 사용할 때 유효한 -C
개체가 포함된 --config
파일을 전달할 수 있습니다.이 도구에서 허용하는 유효한
JSON
개체의 예는 다음과 같습니다.{
"input" : "./text-files",
"output" : "output-folder",
"lang" : "uk",
}
잘못되고 지원되지 않는
key-value
쌍은 무시됩니다.
Reference
이 문제에 관하여(SSG에서 `--config` 옵션에 대한 지원 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tdaw/adding-support-config-option-to-an-ssg-2aa4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)