프로젝트 내에서 잘못된 파일 URL을 찾으십시오.
시작
전체 URL-FI는 hyunjiLeeTech으로 작성되었습니다. 그래서 이 프로젝트에 기여하기 전에 먼저 이 아이디어를 제안하는 게시물issue을 게시했으며 Slack에서 작업하고 싶습니다. 다행히 그녀는 "앞으로!"라고 대답했습니다.
디렉토리에서 파일을 찾으십시오!
디렉토리에서 파일을 찾으려면 파일이 폴더인지 아닌지를 알아야 합니다.
그래서
fs.readdirSync(path, { encoding: "utf-8",withFileTypes:true })
를 사용했습니다. 이것은 DIRENT 클래스를 반환했습니다. 클래스 내부에는 파일의 이름과 유형이 있습니다(1은 폴더가 아니고 2는 폴더). JS에서 파일을 필터링하는 가장 좋은 방법은 ... 물론 필터를 사용하는 것입니다! files = files.filter(file=>{
return !file.isDirectory()
});
그럼 잘못된 URL을 찾아봅시다!
files.map(file=>{
let content = 0;
try {
content = fs.readFileSync(`${path}/${file.name}`, {encoding: "utf-8"})
} catch (error) {
console.log(colors.yellow(`${error}`));
}
let links = content.match(regex);
for (let i = 0; links && i < links.length; i++) {
let link = links[i];
if (link.startsWith("https://")) {
checkUrl(link);
} else {
checkUrl(link);
if (sFlag) {
checkUrl(link.replace(/^http/, "https"));
}
}
}
})
-r 옵션을 추가하고 f
다음 코드와 같이 이 프로그램은 세 가지 옵션만 지원합니다. https 테스트의 경우 s, h, v, 도움말 메시지 및 버전 각각.
if (arg.includes("s")) {
...
}
if (arg.includes("h")) {
...
}
if (arg.includes("v")) {
...
}
코드 바로 아래에 '재귀적으로'를 의미하는 r 옵션을 추가했습니다.
if (arg.includes("r")) {
findFilesInDir(process.argv[3])
}
일부 문제 수정
모든 코드를 구현한 후 변경 사항을 커밋했지만 다음과 같은 문제가 있었습니다.
1. 이전 코드에서 사용자가 동시에 여러 인수를 입력할 수 있도록 했습니다(예: url-fi -hvs test.html). 그러나 내가 당신의 코드를 사용할 때, 이것은 이것을 허용하지 않습니다(예를 들어, url-fi -hs test.html). 이것을 확인해 주시겠습니까?
2. 파일(디렉토리가 아님)과 함께 -r 인수를 사용하면 오류가 발생합니다(ENOTDIR: 디렉토리가 아님, scandir 'test.html). 오류가 아닌 메시지를 인쇄하도록 할 수 있습니까?
그래서 나는 변했다
if (arg.includes("r")) {
findFilesInDir(process.argv[3])
}
에게
if (arg.includes("r")) {
rFlag = true;
findFilesInDir(process.argv[3])
}
그리고 try 및 catch 블록을 추가하십시오.
따라서 전체 findFilesInDir은 다음과 같습니다.
try {
let files = fs.readdirSync(path, { encoding: "utf-8",withFileTypes:true })
files = files.filter(file=>{
return !file.isDirectory() && !file.name.endsWith('.js')
});
files.map(file=>{
let content = 0;
try {
content = fs.readFileSync(`${path}/${file.name}`, {encoding: "utf-8"})
} catch (error) {
console.log(colors.yellow(`${error}`));
}
let links = content.match(regex);
for (let i = 0; links && i < links.length; i++) {
let link = links[i];
if (link.startsWith("https://")) {
checkUrl(link);
} else {
checkUrl(link);
if (sFlag) {
checkUrl(link.replace(/^http/, "https"));
}
}
}
})
} catch (error) {
console.log(colors.yellow(`${error}`));
}
더 많은 기여
이 작은 프로젝트PR에 참여하고 무엇이든 발행하십시오!
Reference
이 문제에 관하여(프로젝트 내에서 잘못된 파일 URL을 찾으십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/klee214/find-wrong-urls-of-your-files-inside-your-projects-a57텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)