>웹 프론트엔드 >JS 튜토리얼 >nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개

nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개

青灯夜游
青灯夜游앞으로
2021-06-18 10:42:223473검색

이 글에서는 nodejs의 require 실행 과정을 자세히 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개

최근 node를 보다가 모듈 도입 과정을 일부러 알아봤습니다. 오늘은 리뷰 기록을 작성해보겠습니다. 지금 이 글을 읽고 있는 여러분에게 도움이 되었으면 좋겠습니다

노드 내 모듈 분류

  • 핵심 모듈 또는 내장 모듈(즉, 노드 자체 fs, http, vm...) 자세한 내용은 공식 웹사이트 API를 참조하세요

  • 타사 모듈 또는 자체 패키지 npm 패키지는 개인 또는 공용 라이브러리에 배치됩니다(npm install을 통해 npm에 설치 및 사용됨)

  • 파일 모듈, 내부 프로젝트 파일, 상대 경로 또는 절대 경로 방법 사용 require

[권장 학습: "nodejs tutorial"]

모듈 가져오기 require

여기서 디버깅 도구는 함께 제공되는 것입니다. vscode

nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개

require process

1. 파일을 읽고 require 메소드 return mod.require(path)

nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개

2를 입력하고 Module.prototype.require가 실제로 있는지 확인하세요. 실행, (여기서 id는 처음에 있는 경로입니다.) 음~ 왜 Module._load를 다시 호출했습니까? 별거 아닙니다. 계속 진행합시다

nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개

3. id, this, /* isMain */ false) 경로에 따라 모듈을 로드합니다.

  • 파일 이름을 Module._cache 개체의 키로 사용하여 파일이 캐시되었는지 쿼리합니다. 직접

nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개

  • 캐시 배열에 없으면 모듈 ._resolveFilename이 파일 경로를 절대 경로로 구문 분석한 후 캐시에 적중되면 지속적으로 캐시를 확인합니다

nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개

  • 처음 두 개의 캐시 검색에서는 외부 모듈을 제외하고 내장 모듈인지 확인합니다. 그렇다면 내보내기

nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개

  • 여기에 가면 실제로 이 모듈이 캐시되지 않았음을 알 수 있습니다. new one

nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개

4. new Module()을 입력하고 빈 개체를 만듭니다. this.exports = {}: 이것이 우리가 궁극적으로 원하는 내보내기 개체입니다. (다른 모듈에서 참조되는 모듈은 여기서 자세히 연구하지 않습니다. )

nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개

5. Module._cache[filename] 3단계에서 파싱된 경로가 키로 사용되며, 4단계에서 생성된 객체의 값을 수행하여 캐시 배열에 저장합니다. 계속하세요! !

nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개

6.module.load(), 이 함수

nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개

nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개

  • findLongestRegisteredExtension을 입력하여 파일 이름 접미사를 계산합니다.

  • Module._extensions[extension]( 이, 파일 이름)에 따르면 다른 로딩 방법을 호출하기 위해 다른 접미사로 변경(여기서는 전략 모드가 사용됨)

  • 여기서 맞은 것은 .js입니다. 이 방법에서는 fs.readFileSync를 사용하여 파일을 동기적으로 읽은 다음 module._compile()을 매개변수로 호출합니다

nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개

7. ) 입력하다 , 그리고 content가

nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개

8을 실행하기 위해 WrapSafe(filename, content, this)의 매개변수로 사용되는 것을 발견했으며, 그런 다음 WrapSafe()를 입력합니다. ps: 여기서는 이전 버전에 대해 직접 이야기할 것이며 실행은 다음과 같습니다. 이해하기 쉽습니다

nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개

First Module.wrap이 호출되고 함수가 입력됩니다. 노드 모듈은 필수(함수(){ })로 패키지되어 독립 모듈을 형성합니다.

nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개

그런 다음 반환된 패키지 문자열 모듈은 vm으로 사용됩니다. .runInThisContext 매개변수는 모듈 코드를 실행합니다(js의 new Function과 동일한 효과로 실행을 위해 문자열을 js로 바꿀 수 있음). 노드 자체 내장 메소드에 대한 자세한 내용은 노드 공식
  • 을 참조하세요. 9. 여기에서 모듈의 require 프로세스가 실행되고 나면 사용자는 기본적으로 module.export의 반환 결과를 얻습니다. 파일의 함수

함수 형식 함수(내보내기, 모듈,require,_dirname,파일 이름){}

    runThisContext를 사용하여 호출을 위한 모듈을 js 구문으로 변환
  • 더 많은 프로그래밍 관련 지식 , 다음 페이지를 방문하세요:
  • 프로그래밍 소개

    ! !

위 내용은 nodejs에서 모듈을 가져오는 방법은 무엇입니까? require 실행 프로세스 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.cn에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제