node에서 path를 주면 하위 모든 directory의 file 찾기

Inhye Jeong·2021년 7월 30일
0

배경

next.js에서 소스맵 파일을 생성했다.
sourcemap 파일만을 가진 디렉토리를 설정하기에는,
1. 모니터링툴에 sourcemap 올릴때 대응하는 js 파일의 path를 찾는 것
2. sourcemap 파일을 찾는 것

이렇게 두가지의 로직을 작성해야해서, 한꺼번에 처리하려고 sourcemap이 js 파일과 동일한 디렉토리에서 생성되도록 따로 웹팩에서 sourcemap 디렉토리를 설정하지 않았다.

따라서 sourcemap이 next 앱의 page 디렉토리 설정에 따라, subdirectory에도 생겼다. sourcemap을 추출하기 위해서는 subdirectory까지 탐색해야하는 상황

해결

구글링을하다가 directory path만 주면 surbdirectory까지 재귀로 돌아 파일명을 찾아오는 로직을 찾아서 해결했다.

https://stackoverflow.com/a/54387221

import fs from 'fs';
import path from 'path';

const getAllFiles = dir =>
    fs.readdirSync(dir).reduce((files, file) => {
        const name = path.join(dir, file);
        const isDirectory = fs.statSync(name).isDirectory();
    return isDirectory ? [...files, ...getAllFiles(name)] : [...files, name];
    }, []);
profile
Frontend Engineer in @KakaoStyle

0개의 댓글