Deno 캐시 디렉토리를 가져오는 함수 만들기

코드를 쓰고 싶다면 정보를 캐시하고 싶은 일이 종종 있다.
일시적인 물건이라면 현재 디렉터리에 넣을 수 있지만 다른 환경으로 가져갈 수도 있고 다른 프로그램에 참고될 수도 있다면 미리 규칙을 정해 놓으면 처리하기 쉽다.
Deno는 환경 변수DENO_DIR가 설정한 디렉토리에 CLI 정보를 저장하기 때문에 자체 제작 도구의 정보도 거기에 캐시할 수 있다고 생각합니다.
https://deno.land/manual/getting_started/setup_your_environment#environment-variables
그러나 이 경로는 환경 변수의 설정 상황과 OS 등에 따라 다르기 때문에 하드코딩은 좋지 않다고 생각한다.
따라서 획득DENO_DIR의 함수를 만들었습니다.

denoinfo에 표시할 수 있습니다


이 디렉토리는 deno info 명령을 통해 확인할 수 있습니다.
자신의 환경에서 출력은 다음과 같다.
❯ deno info
DENO_DIR location: "/Users/kawarimidoll/Library/Caches/deno"
Remote modules cache: "/Users/kawarimidoll/Library/Caches/deno/deps"
Emitted modules cache: "/Users/kawarimidoll/Library/Caches/deno/gen"
Language server registries cache: "/Users/kawarimidoll/Library/Caches/deno/registries"
Origin storage: "/Users/kawarimidoll/Library/Caches/deno/location_data"
상기deno info의 출력에서 DENO_DIR location:"~~~"의 부분을 추출하면 DENO_DIR의 값을 얻을 수 있다.
❯ deno info | grep DENO_DIR | sed -e 's/.* "//' -e 's/"$//'
/Users/kawarimidoll/Library/Caches/deno

JS 성형으로.


Deno 스크립트에서 쉽게 사용할 수 있도록 위의 처리를 수행하는 함수가 만들어졌습니다.
이 코드는 위 설명기스트에서 공개합니다.과 같이 파일 경로import from를 전달하면 읽을 수 있습니다.좀 길긴 한데
deno_dir_sample.ts
import { getDenoDir } from "https://gist.githubusercontent.com/kawarimidoll/92179f60dfc67de3b0a52c5eb25ad333/raw/b193e088e47ee033a7d685ca6e9f45793bd26844/get_deno_dir.ts"

console.log(await getDenoDir());
내부에서 deno info 명령을 실행하려면 --allow-run 권한이 필요합니다.
❯ deno run --allow-run=deno ./deno_dir_sample.ts
/Users/kawarimidoll/Library/Caches/deno
그리고 이와 상대적으로ensureDir 디렉터리writeFile를 만들어 파일을 저장하면 된다.

끝말


만약 Deno가 실행되는 환경이라면, 이 디렉터리는 확실히 존재하기 때문에, 나는 어떤 캐시를 할 때 사용할 수 있을 것이라고 생각한다.
또한 기존 캐시deno info의 출력 두 번째 줄 이후)는 Deno가 자체적으로 관리하므로 변경하지 않도록 주의하십시오.

좋은 웹페이지 즐겨찾기