npm scripts에서 rimraf를 사용하지 않고 디렉터리 삭제
삼행
rimraf dist가 node -e 'fs.rmSync(`dist`, {recursive:true, force:true})'로 대체rimraf dist/*.bundle.js 등glob를 포함하는 교환불가장황한 설명
npm scripts에서 필요하지 않은 캐시나 구축된 출력 파일을 삭제하고 싶을 때rimraf POSIX의 포장
rm -rf을 이 포장으로 대체하는 경우가 많다.명령 프롬프트(cmd.exe)에 없음npm run을 비롯한 환경 종속 문제를 피하기 위해서다.그럼에도 불구하고 포장이 없으면 디렉터리를 차례로 삭제할 수 없기 때문에 좀 번거롭습니다.10.0
rmfs.rmdirfs.promises.rmdir에 추가fs.rmdirSync 옵션은 설정recursive을 통해 fs.rmdirSync('foo/', { recursive: true })과rm -rf에 접근할 수 있다.그나저나 glob을 사용할 수 없는 것 이외Windows에서 rimraf 실행.그러나 실제로 POSIX
rmdir는 귀속 삭제 기능이 없기 때문에 recursive를 rmdir 옵션에 추가하면 번거롭다는 의견이 있다.대안으로 추가rmtree라는 함수를 고려한 것 같다.또 POSIX와의 통합성으로 볼 때rm에 해당하는 것fs.unlink도 복잡한 문제가 존재한다.그리하여14.0은 POSIX
rm에 해당하는 rimraf 직접 사용fs.rmfs.promises.rm를 추가했다.리눅스의 케이스fs.rmSync와 같이 rm -rf로 분류하여 디렉터리를 삭제할 수 있다.따라서
fs.rmSync('foo/', { recursive: true, force: true })의 코드를 문자열fs.rmSyncnode --eval로 문자열에 전달하고 디렉터리를 삭제할 수 있다.node -e 및 node -e에서는 REPL과 같은node -p 가져오기가 필요하지 않습니다.또 fs를 선택한 이유는 fs.rmSync는 fs.rm부분, ,()=>{}는 fs.promises.rm부분이 조금 길다는 것이다..promises 귀속 삭제 옵션이 시스템에 추가되었기 때문에 fs.rm 시스템의 fs.rmdir 옵션은 recursive입니다.나중에 이 옵션을 지정해도 무시됩니다.[nix-shell:~/fs]$ node -v
v16.1.0
[nix-shell:~/fs]$ node -e "fs.rmdirSync('bin', {recursive: true})"
(node:11973) [DEP0147] DeprecationWarning: In future versions of Node.js, fs.rmdir(path, { recursive: true }) will be removed. Use fs.rm(path, { recursive: true }) instead
(Use `node --trace-deprecation ...` to show where the warning was created)
fs.rm는 모든 기존 LTE에서 사용할 수 있는 것이 노드다.jsv12가 EOL 2022-04-30이 되면또는 v12fs.rm가 반환될 수 있습니다.참조 링크
v16.0.0으로 deprecated
여기
fs.rmdir의recursive를 알고 문서를 보러 갔는데 deprecated가 됐어요. 놀랍게도 이 글을 쓴 계기가 됐어요.Reference
이 문제에 관하여(npm scripts에서 rimraf를 사용하지 않고 디렉터리 삭제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/aumy/articles/node-e-fs-promises-rm-rimraf-recursive-true텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)