디노를 개발할 때 효율을 높이는 지령을 만들었어요.
Neovim에서 터미널을 열고 편집 중인 파일에 따라
deno run
또는 deno test
명령을 실행합니다.개발을 위해
--allow-all
와 --unstable
가 자동으로 추가되어 실행 시 필요한 옵션을 고려할 필요가 없습니다.그리고 --watch
도 하고 있기 때문에 수정반응 코드를 다시 시작합니다.나 개인적으로는 아주 보배야.
이번에는 이 지령이 디노 스크립트로 다시 만들어졌다고 소개합니다.
dex
A dexterous deno executor
약칭dex
.기능
단순 자동화
deno run
및 deno test
.deno run
또는deno test
.--allow-all --unstable --no-check --watch
설치 실행--clear
옵션을 추가하여 다시 로드할 때마다 콘솔을 지울 수 있습니다.--watch
옵션에 파일 경로를 보내거나 실행 대상 파일 이외의 변경 사항을 감시할 수 있습니다.deno run
또는 deno test
에 전달됩니다.import_map.json
또는 deno.jsonc
등 규정된 이름이 있는 파일은 실행 옵션에 자동으로 전달됩니다.--import-map
및 --config
옵션 매개 변수로 지정된 파일(자동 지정된 파일 포함)은 자동으로 변경 모니터링을 수행합니다.가져오기
deno install
에서 가져옵니다.deno install --allow-read --allow-write --allow-run --reload --force --name dex https://pax.deno.dev/kawarimidoll/deno-dex/main.ts
각 권한은 다음과 같은 이유로 요구된다.read
: 파일 변경 및 현재 디렉터리 감시write
: 중간 실행 파일의 생성run
: deno
명령 실행 및 중단--reload --force
를 설치하는 것이 좋습니다.기본용법
deno run
에서 실행하여 파일에 매개 변수로 전달합니다.dex hello.ts
# -> deno run --allow-all --unstable --no-check --watch hello.ts
테스트 파일에 제출하면 자동으로 판정하고 집행deno test
.dex hello_test.ts
# -> deno test --allow-all --unstable --no-check --watch hello_test.ts
옵션
이 별명
deno run/test --allow-all --unstable --no-check --watch
만 사용할 수 있지만 --clear
및 --watch
옵션을 사용할 수 있습니다.또 다른 옵션
--version
과 --help
이 투명하게 전달deno run/test
되기 때문에 --compat
와--quiet
등도 사용할 수 있다.이때 파라미터의 처리에 대해 이쪽 보도에서 설명하겠습니다.
콘솔 자동 지우기
--clear
옵션을 추가하여 다시 로드할 때마다 화면을 지울 수 있습니다.이전에 소개됐던 네오비엠용 지령도 이 글에서 계발됐다.
이 글은 편집 대상의 파일에
console.clear()
를 놓는 방법을 소개했다.dex
아래 파일$DENO_DIR
을 생성하여 실행합니다.사용자는 명확하게 쓸 필요가 없다
console.clear()
.$DENO_DIR/dex/script.ts
console.clear();
import("path/to/file");
처음에는 이base 64화deno run
를 실행에 맡길 수 있을 것으로 생각했으나 경로 해결이 순조롭지 않아 $DENO_DIR
이하로 생성하기로 했다.비실행 개체의 파일 모니터링
deno run --watch
실행 대상의 파일과 이 파일import의 파일만 감시 대상으로 업데이트하고 dex
--watch
옵션에 추가된 파일은 모두 감시 대상이 된다.예를 들어 다음과 같은 표시
sample.txt
의 스크립트가 있을 때show_text.ts
console.log(await Deno.readTextFile("./sample.txt"))
sample.txtThis is sample text!
--watch
옵션에 지정된 경우sample.txt
파일이 업데이트될 때 자동으로 다시 로드됩니다.dex --watch=./sample.txt show_text.ts
,
로 분리하여 교부해도 여러 파일을 지정할 수 있다.프로파일 자동 로드 및 모니터링
Deno를 실행할 때 지정할 수 있는 설정 파일은 import maps 및 configuration file입니다.
dex
실행 시 현재 디렉토리에 import_map.json
가 있으면 --import-map
옵션에 자동으로 전달됩니다.마찬가지로 현재 디렉토리에
deno.jsonc
deno.json
tsconfig.json
중 하나가 있는 경우 자동으로 --config
옵션에 전달됩니다(전번일수록 우선).또한
--import-map
및 --config
옵션 매개 변수로 지정된 파일(자동 지정된 파일 포함)은 자동으로 변경 모니터링을 수행합니다.실행 중
deno.jsonc
로 변경되면 자동으로 재부팅되는 셈이다.주의점
단순 실행이 개념이기 때문에 모든 권한을 허가
--allow-all
, 불안정 동작 허가--unstable
, 검사하지 않는 유형--no-check
의 전혀 보호되지 않는 설정으로 설정한다.개발 환경에서 확인용으로 사용하면 문제없지만 외부 코드를 사용할 때는 각별히 주의하세요.
또 코드Deno.exit()에서 호출되면 즉시 종료되기 때문에 재부팅이 불가능하다.
이것은 일반적인
deno run --watch
행위와 같다.끝말
dex
를 사용하면 권한에 따라 모든 허가·설정 파일 자동 감시 기능을 상세한 설정을 고려하지 않아도 먼저 실행할 수 있다.이전에 만들어진 명령은 Neovim 전용이었지만 편집기든 자동 실행이든 모두 이 혜택을 받았다.
동작을 확인하면서 개발하기 쉬울 것 같으니 꼭 사용하세요.
소감, 오류 보고, 스타, 무엇이든 환영합니다.잘 부탁드립니다.
Vim/Neovim 제휴
편집기와 무관한 내용을 썼지만 필자는 네오비엠 사용자이기 때문에 이번
dex
은 네오비엠 내에서 사용할 수 있다.다음 정의를 설정 파일에 추가하여 사용하십시오.Vism도 작동할 것입니다.
.vimrc or init.vim
command! -nargs=* -bang Dex silent only! | botright 12 split |
\ execute 'terminal' (has('nvim') ? '' : '++curwin') 'dex'
\ (<bang>0 ? '--clear ' : '') <q-args> ' ' expand('%:p') |
\ stopinsert | execute 'normal! G' | set bufhidden=wipe |
\ execute 'autocmd BufEnter <buffer> if winnr("$") == 1 | quit! | endif' |
\ wincmd k
:Dex
에서 현재 파일을 실행합니다dex
.:Dex --quiet
이런 느낌으로 옵션을 제공할 수 있습니다.:Dex --clear
의 단축키로 사용할 수 있다:Dex!
.참고 자료
--watch
옵션의 대상 파일이 자체적으로 업데이트 감시를 진행하고 있습니다.이것은 다음과 같은 문장을 참고했다.
Reference
이 문제에 관하여(디노를 개발할 때 효율을 높이는 지령을 만들었어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/kawarimidoll/articles/d371abbd46b65b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)