findBreakURL CLI 프로그램에 새로운 기능 추가
시작하기
findBreakURL은 파일에서 잘못된 URL을 찾을 수 있도록 지원하는 훌륭한 CLI 프로그램입니다. 명령은 매우 간단하고 강력합니다! 그러나 프로그램이 여전히 개선되어야 함을 인정해야 했습니다. 그래서 이번에는 좀 더 흥미로운 기능을 프로그램에 추가했습니다.
어떤 기능이 추가되었는지
요즘 AJAX는 말 그대로 어디에나 있습니다! CLI 프로그램이 의미 없는 txt 파일 대신 JSON을 반환하면 어떻게 될까요? 다른 웹 앱의 잘못된 URL을 찾는 데 매우 유용한 도구입니다. 그렇게 하려면 JSON 출력이 다음과 같아야 합니다.
[
{ url: 'https://www.google.com': status '200' },
{ url: 'https://bad-link.com': status: '404' }
]
또한 대부분의 경우 나쁜 URL이나 좋은 URL만 있으면 됩니다. 둘 다 필요하지 않습니다. 따라서 좋은 URL이나 나쁜 URL만 표시합니다.
--good
플래그를 사용하면 좋은 URL만 표시됩니다. --bad
플래그를 사용하면 잘못된 URL만 표시됩니다.코딩 타임! -첫 번째-
첫 번째 기능을 시작하겠습니다. 우선, 새로운 인수 옵션이 필요합니다! yargs npm 덕분에 이것은 매우 쉽습니다.
.alias("j", "json")
, .describe("j", "Display all results as JSON format")
.그런 다음
-j
플래그가 참인지 거짓인지 확인해야 합니다. JSON.stringfy()
로 가는 것이 사실입니다.arg = yargs.argv;
// ...
if (arg.j) {
await jsonFetch(url);
} else {
await fetchFunction(url, file);
}
}
내부
jsonFetch(url)
try {
const response = await axios.head(url);
// ...
const httpObj = {
url,
status: response.status,
};
console.log(chalk.green(JSON.stringify(httpObj)));
// ...
} catch (error) {
// ...
const httpObj = {
// ...
};
console.log(chalk.yellow(JSON.stringify(httpObj)));
}
// ...
}
After commit this change.
코딩 타임! -초-
이제 두 번째 기능을 수행해 보겠습니다.
-j
플래그와 동일하게 "yargs"npm에서 이점을 얻을 수 있습니다.그 후에는 비교적 간단합니다. 출력을 표시하기 전에 조건을 추가하기만 하면 됩니다!
if (!arg.b)
또는 if (!arg.g)
. 플래그가 존재하거나 그 반대의 경우 true를 반환합니다.jsonFecth(url)
기능은 다음과 같습니다.// ...
if (!arg.b) {
const httpObj = {
url,
status: response.status,
};
console.log(chalk.green(JSON.stringify(httpObj)));
}
//...
if (!arg.g) {
// If 404 error :
if (error.response) {
const httpObj = {
url,
status: error.response.status,
};
console.log(chalk.yellow(JSON.stringify(httpObj)));
} else {
const httpObj = {
url,
error: error.code,
};
console.log(chalk.red(JSON.stringify(httpObj)));
}
}
// ...
그리고, 노멀
fetchFunction(url,file)
// ...
if (!arg.b) {
if (response.status === 301) {
chalk.black.bgYellow(
console.log(
"In " +
file +
" file, the URL: " +
url +
". Status code: 301, Moved Permanently to: " +
response.headers[`Location`]
)
);
// ...
if (!arg.g) {
// If 404 error :
if (error.response) {
console.log(
chalk.white.bgRed.bold(
"In " + file + " file, the URL: " + url + " is a bad url: "
)
);
//...
After commit this change.
결론
두 가지 다른 지점인 issue-7과 issue-8을 사용했기 때문입니다. 병합하는 과정에서 일부 부품을 수동으로 다시 코딩해야 했습니다. 예를 들어, 나중에 코드에서 -g -b 플래그를 추가하고 일부 변수 이름을 다르게 변경했습니다... 이 사소한 서투르고 정리되지 않은 것이 결국 나를 귀찮게 했습니다. 따라서
three-way recursive
병합을 수행하는 경우 이를 인지하고 작은 세부 사항에 완전히 주의하십시오.자세한 내용은 myGithub에서 확인할 수 있습니다!
기여
나는 항상 당신의 기여를 환영합니다! 언제든지 내 github를 방문하십시오.
Reference
이 문제에 관하여(findBreakURL CLI 프로그램에 새로운 기능 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/klee214/added-new-features-to-findbreakurl-cli-program-ijl텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)