
Dirjet는 디렉터리나 개별 파일을 로컬에서 제공하는 Rust 기반 정적 파일 서버다. Node.js 18+ 또는 Bun이 있으면 npx나 bunx로 실행할 수 있으며, 설정 파일이나 Rust 도구 모음은 필요하지 않다.
# Serve a specific directory
npx dirjet ./my-website
# Serve a single HTML file
npx dirjet index.html
# Serve the current directory
npx dirjet
기본 주소는 http://127.0.0.1:3000이며, 실행을 끝내려면 Ctrl+C를 누르면 된다. Bun을 사용할 때는 bunx dirjet ./my-website로 실행한다. Node.js가 설치되지 않았다면 bunx --bun dirjet ./my-website를 사용할 수 있다.
디렉터리에 index.html이 있으면 해당 파일을 제공하고, 없으면 디렉터리 목록을 보여준다. 숨김 파일과 상위 디렉터리로의 이동을 차단하며, 문서 루트 밖을 가리키는 심볼릭 링크도 차단한다. 단일 파일 모드에서는 파일의 상대 경로에 있는 스타일시트·스크립트·이미지도 제공하지만, 같은 상위 디렉터리의 다른 숨김이 아닌 파일도 URL로 접근할 수 있다. 이 모드에서는 디렉터리 목록을 표시하지 않는다.
단일 페이지 애플리케이션(SPA)은 다음처럼 실행할 수 있다.
npx dirjet -s ./dist -p 8080
--single 옵션은 /users/42처럼 확장자가 없는 경로가 없을 때 index.html을 반환해 프런트엔드 라우터가 처리하도록 한다. 없는 자산 파일(/missing.js 등)은 계속 404를 반환한다. 단일 파일을 제공할 때는 해당 파일이 대체 페이지로 쓰인다.
기본 포트는 3000이며, -p 또는 --port로 변경할 수 있다. --host로 특정 IP에 바인딩할 수 있고, 0.0.0.0을 지정하면 같은 로컬 네트워크의 다른 기기에서도 접속할 수 있다. --no-listing은 index.html이 없는 디렉터리에 404를 반환하게 한다.
Dirjet는 정적 파일 서버이므로 TypeScript, JSX 등 프런트엔드 소스는 제공하기 전에 빌드해야 한다. 코드를 변환하거나 실시간 새로고침을 제공하지 않으며 TLS도 종료하지 않는다.
첫 실행 때 JavaScript 실행기가 운영체제와 CPU에 맞는 네이티브 바이너리를 해당 GitHub 릴리스에서 내려받는다. 실행 전 SHA-256 체크섬을 확인하고 운영체제 캐시 디렉터리에 저장한다. 따라서 첫 실행에는 GitHub Releases에 접근할 수 있어야 한다. 이후에는 캐시된 바이너리를 확인해 재사용하며, 버전마다 별도 캐시를 사용한다. 중단되거나 유효하지 않은 다운로드는 삭제되고, postinstall 스크립트는 실행되지 않는다. 사전 빌드 바이너리는 Linux, macOS, Windows의 x64와 ARM64를 지원한다. DIRJET_CACHE_DIR 환경 변수로 쓰기 가능한 사용자 지정 캐시 디렉터리를 지정할 수 있다.
Dirjet 저장소 · 문서 · npm 패키지
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요