Deno를 사용해야 하는 이유

3706 단어 denojavascriptnode
내 블로그에 원래 게시됨here.

Deno's website에서 :

Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust.

  • Secure by default. No file, network, or environment access, unless explicitly enabled.
  • Supports TypeScript out of the box.
  • Ships only a single executable file.
  • Has built-in utilities like a dependency inspector (deno info) and a code formatter (deno fmt).
  • Has a set of reviewed (audited) standard modules that are guaranteed to work with Deno: deno.land/std


Deno Node.js를 서버용 JS 런타임으로 대체하는 것을 목표로 합니다. Node.js의 원래 제작자인 Ryan Dahl이 주도하기도 하며 Node.js의 가장 큰 문제를 해결하는 것을 목표로 만들어졌습니다.

Deno의 주요 장점



Node 프로젝트 작업을 시작하고 컴파일러(TypeScript, Babel, CoffeeScript 등), 테스트 프레임워크(Jest, Cypress, Mocha, Chai 등)와 같은 추가 도구를 모두 설정하는 데 15분 이상을 소비한 적이 있습니까? .), 린터 및 포맷터 등. 나는 내가 확실히 가지고 있다는 것을 알고 있고, 정말 짜증납니다. 최대한 빨리 코딩을 하고 싶은데 이 점에서 Deno가 Node보다 월등히 뛰어납니다. Deno에는 다음과 같은 기능이 내장되어 있으며 구성이 필요하지 않습니다.

내장 TypeScript 지원



Deno는 tsconfig.json 파일을 건드릴 필요 없이 TypeScript 코드를 실행합니다. 이렇게 하면 코드를 JS로 변환하는 대신 코드에 집중할 수 있습니다. 기존 JavaScript 코드도 사용할 수 있습니다.

내장 테스트



Deno에는 JavaScript 또는 TypeScript 코드를 테스트하는 데 사용할 수 있는 테스트 실행기가 내장되어 있습니다. 다음과 같이 파일에 인라인으로 테스트를 작성할 수 있습니다.

Deno.test("1 plus 2 equals 3", () => {
  const x = 1 + 2;
  assertEquals(x, 3);
});
deno 실행 파일을 사용하여 모든 테스트를 실행합니다.

deno test

Deno의 테스트here에 대해 자세히 읽을 수 있습니다.

내장 린터 및 포맷터



Deno에는 deno 바이너리를 통해 사용할 수 있는 린터와 포맷터가 모두 내장되어 있습니다. linter 문서here 및 formatter 문서here를 읽을 수 있습니다. 원하지 않는 한 직접 설정할 필요가 없습니다.

내장 번들러



Deno에는 코드를 패키징하는 내장 번들러가 있으므로 자체 번들러를 설정할 필요도 없습니다.


Deno는 또한 Node에서 작성하는 것보다 몇 가지 다른 장점이 있습니다.

기본적으로 보안



파일 시스템, 네트워크, 환경에 대한 액세스 및 하위 프로세스를 실행하는 기능은 모두 CLI 옵션을 사용하여 명시적으로 활성화해야 합니다. 특정 호스트 또는 파일에만 액세스를 허용할 수도 있습니다.

브라우저 호환성



Node.js에는 브라우저 API가 많이 부족합니다. 예를 들어 HTTP를 통해 리소스를 가져오려면 fetch API를 사용하면 됩니다. Node에서는 이를 수행하기 위해 전체 라이브러리를 가져와야 합니다. 이것은 Deno의 경우가 아닙니다. Deno에는 대부분의 브라우저 API가 포함되어 있습니다. 사실 Deno 코드는 브라우저와 최대한 호환되도록 설계되었습니다. Deno와 관련된 모든 것은 Deno 네임스페이스 아래에 있으므로 코드에서 이를 제거하면 모든 최신 브라우저에서 실행되어야 합니다. WebAssembly 바이너리도 실행할 수 있습니다.


이것이 내가 개인적으로 가능하면 Node보다 Deno를 사용하는 몇 가지 이유입니다.

좋은 웹페이지 즐겨찾기