분류 Nodejs

Deno 란 무엇이며 Node.js와 어떻게 다릅니까?(2)

컨텐츠 정보

  • 조회 605 (작성일 )

본문

웹 사이트가 다운되면 어떻게 되나요?


중앙 레지스트리가 아니므로 모듈을 호스팅하는 웹 사이트가 여러 가지 이유로 중단 될 수 있습니다. 개발 중 또는 생산 중 악화되는 상황에 따라 위험합니다.


앞에서 언급했듯이 Deno는 다운로드 한 모듈을 캐시합니다. 캐시는 로컬 디스크에 저장되므로 Deno 제작자는 버전 제어 시스템 (git)에서 캐시를 확인하고 리포지토리에 보관할 것을 권장합니다. 이렇게 하면 웹 사이트가 다운 되더라도 모든 개발자가 다운로드 한 버전에 액세스 할 수 있습니다.


Deno는 $ DENO_DIR 환경 변수에 지정된 디렉토리에 캐시를 저장합니다. 변수를 직접 설정하지 않으면 시스템의 기본 캐시 디렉토리로 설정됩니다. 로컬 저장소 어딘가에 $ DENO_DIR을 설정하고 이를 버전 제어 시스템으로 체크인 할 수 있습니다.


URL로 항상 가져와야 합니까? 


끊임없이 URL을 입력하는 것은 매우 지루합니다. 고맙게도 Deno는 이를 피하기 위한 두 가지 옵션을 제시합니다.


첫 번째 옵션은 다음과 같이 로컬 파일에서 가져온 모듈을 다시 내보내는 것입니다.


export { test, assertEquals } from "https://deno.land/std/testing/mod.ts";

위 파일을 local-test-utils.ts라고 하겠습니다. 이제 test 또는 assertEquals 함수를 다시 사용하려면 다음과 같이 참조하면 됩니다.


import { test, assertEquals } from './local-test-utils.ts';

따라서 URL에서 로드 되는지 여부는 중요하지 않습니다.


두 번째 옵션은 JSON 파일에서 지정하는 가져 오기 맵을 작성하는 것입니다.


{
   "imports": {
      "http/": "https://deno.land/std/http/"
   }
}

그런 다음 다음과 같이 가져옵니다.


import { serve } from "http/server.ts";

작동하려면 --importmap 플래그를 포함시켜 Deno에 수입 맵에 대해 알려야 합니다.


deno run --importmap=import_map.json hello_server.ts

패키지 버전 관리는 어떻습니까? 


패키지 공급자는 버전 관리를 지원해야 하지만 클라이언트 측에서는 URL에서 버전 번호를 다음과 같이 설정하면 됩니다.


https://unpkg.com/liltest@0.0.5/dist/liltest.js. 


브라우저 호환성 


Deno는 브라우저와 호환되는 것을 목표로 합니다. 기술적으로 말하면 ES 모듈을 사용할 때 브라우저에서 응용 프로그램을 사용할 수 있도록 웹팩과 같은 빌드 도구를 사용할 필요가 없습니다.


그러나 Babel과 같은 도구는 코드를 ES5 버전의 JavaScript로 변환하므로 최신 언어 기능을 모두 지원하지 않는 이전 브라우저에서도 코드를 실행할 수 있습니다. 그러나 그것은 또한 최종 파일에 많은 불필요한 코드를 포함시키고 출력 파일을 부풀려 대가를 치르게 됩니다.


우리의 주요 목표가 무엇인지 결정하고 그에 따라 선택하는 것은 우리의 책임입니다.


즉시 사용 가능한 TypeScript 지원 


Deno를 사용하면 구성 파일이 없어도 TypeScript를 쉽게 사용할 수 있습니다. 그래도 일반 JavaScript로 프로그램을 작성하고 문제 없이 Deno로 실행할 수 있습니다.


개요 


TypeScript 및 JavaScript의 새로운 런타임 인 ​​Deno는 현재 한동안 꾸준히 성장하고 있는 흥미로운 프로젝트입니다. 그러나 아직 생산 준비가 완료되기 전에 갈 길이 멀다.


분산 된 접근 방식을 사용하면 npm 인 중앙 집중식 패키지 레지스트리에서 JavaScript 생태계를 자유롭게 하는 데 필요한 단계를 수행합니다.


Dahl 씨는 여름이 끝날 무렵 1.0 버전을 출시 할 예정이므로 Deno의 향후 개발에 관심이 있다면 저장소에 별표를 표시하십시오.