'referenceerror require가 정의되지 않았습니다' 오류를 해결하는 방법은 무엇입니까?

Referenceerror Requirega Jeong Uidoeji Anh Assseubnida Olyuleul Haegyeolhaneun Bangbeob Eun Mueos Ibnikka



Node.js는 그 자체로는 아무것도 아니며, Node.js의 존재 여부는 각 모듈에서 제공하는 모듈과 메서드에 따라 다릅니다. 이러한 모듈을 사용하려면 개발자는 먼저 해당 모듈을 설치한 다음 현재 작업 중인 파일 내로 가져와야 합니다. 모듈을 가져오기 위해 개발자가 현재 사용하고 있거나 애플리케이션 소유자가 빌드하려는 JavaScript 버전과 구체적으로 연결되는 두 가지 방법이 있습니다. 가져오는 동안 여러 오류가 발생할 수 있으며 ' 필요하다() ” 방법을 설명하고 해결하고 있습니다.

이 가이드에서는 'ReferenceError: require가 정의되지 않았습니다' 오류를 해결하는 절차를 설명합니다.

'ReferenceError: require가 정의되지 않았습니다' 오류를 해결하는 방법은 무엇입니까?

프로젝트에서 외부 또는 내장 모듈을 가져오려면 두 가지 접근 방식이 사용됩니다. 필요하다() ' 방법 또는 ' 수입 ” 키워드입니다. 언급된 “ ReferenceError: 요구 사항이 정의되지 않았습니다. ”는 사용자가 “ 필요하다() ” 내부의 메소드 ES 모듈 ” 범위. 아래에 명시된 코드가 실행될 때 node.js의 콘솔을 통해 논의된 오류가 다음과 같이 나타납니다.









'ReferenceError: require가 정의되지 않았습니다.' 오류를 해결하는 이유와 해당 해결 방법은 아래 섹션에 설명되어 있습니다.



이유 1: 애플리케이션 유형이 모듈로 설정되어 있습니다.

애플리케이션에 언급된 오류가 표시되는 경우 가장 쉽고 장기적인 해결 방법은 ' 패키지.json ” 파일. '가 있는 키/값 쌍을 검색합니다. 열쇠 ' 의 ' 유형 ” 및 “의 할당된 값 기준 치수 '. 이는 전체 애플리케이션의 환경을 모듈화하여 오래된 ' 커먼JS ” 모듈 및 방법. 이 키/값 쌍의 시각적 표현은 다음과 같습니다.





'유형' : '기준 치수' ,

해결 방법: '유형' 키 제거

해결책은 ' 유형 ' node.js 프로젝트의 키 및 할당된 값 ' 패키지.json ” 파일. 'package.json' 파일에서 제거하면 ES6 모듈 범위를 활용하고 'require() 메서드를 실행 가능하게 만듭니다. 이제 동일한 코드를 다시 실행해도 오류가 발생하지 않습니다.



이유 2: '.mjs'에서 작업 파일

.mjs ”는 모듈 JavaScript 소스 코드 파일입니다. “가 아닌 모듈 환경 내부의 코드를 포함합니다. 커먼JS ” 더 나은 관리 효율성을 위해 코드를 여러 파일로 분할합니다. “ 필요하다() ” 메소드는 “ 아래에 있습니다. 커먼JS '. 이것이 바로 'require' 메서드가 ' 내부에서 사용될 때 정의되지 않은 이유입니다. .mjs ” 파일 확장자를 사용하고 언급된 오류가 발생합니다.

해결 방법: 파일 확장자를 '.cjs'로 변환하세요.

모듈식 JavaScript 소스 코드와 마찬가지로 파일 확장자는 “ .mjs ' 사용할 수 있습니다. “의 확장 .cjs '는 '에 대해 제공됩니다. 커먼JS ” 모듈 및 속성. 이 파일은 '를 허용하지 않습니다. 모듈식 ” “와 같은 패키지 수입 ”하지만 ES5 버전에서는 잘 작동합니다. 우리의 경우 파일 확장자를 변경하면 ' 필요하다() ' 방법:

대체 접근 방식: ES6 문 '가져오기/내보내기' 사용

필요하다() ” 메소드는 “에 의해 정의되고 제공됩니다. CommonJ ” JavaScript 버전의 ES5(ECMAScript 5)까지 허용됩니다. 2009년에 게시되었으며 현재 많은 최신 모듈이 이를 지원하지 않거나 ES5에서 제대로 작동하지 않기 때문에 더 이상 사용되지 않습니다. “처럼 필요하다() ” 방법은 이제 더 최적화되고 쉬운 방법으로 대체되고 있습니다.” 수입 ' 진술. 두 엔터티의 작업은 동일하지만 '수입'은 최신 기술과 이를 통해 제공되는 더 많은 용이성으로 인해 더 높은 우위를 갖습니다.

기본 또는 외부 모듈의 경우

아래 데모에서는 기본 또는 타사 모듈을 가져오기 위해 'require()' 메서드 대신 'import' 문을 사용하고 있습니다.

수입 readlineObj ~에서 '읽기선' ;

콘솔. 통나무 ( readlineObj ) ;

언급된 코드를 컴파일한 후에는 ' 필요하다() ' 메소드가 수행되고 ' ReferenceError: 요구 사항이 정의되지 않았습니다. '도 나타나지 않습니다.

맞춤형 모듈의 경우

수입 ” 문은 동일하거나 다른 디렉터리에 있는 다른 파일에서 사용자 정의 빌드 모듈이나 기능을 “가져오는” 데에도 사용됩니다. 다른 파일의 함수나 변수는 ' 내보내다 ” 키워드입니다. 예를 들어, 단일 함수와 임의 변수를 다른 파일에서 가져오는 아래 코드 조각을 방문하세요.

app.js

const 내보내기변수 = '이 가이드는 Linuxhint에서 제공됩니다!' ;

const 내보내기 기능 = ( ) => {

콘솔. 통나무 ( 내보내기변수 ) ;

} ;

내보내다 기본 내보내기 기능 ;

내보내다 {

내보내기변수

} ;

위 코드 블록에 대한 설명은 다음과 같습니다.

  • 먼저, '라는 이름의 무작위 변수 내보내기변수 '가 정의되고 화살표 함수 ' 내보내기함수() 생성된 'exportVariable'을 콘솔을 통해 인쇄하는 '가 생성됩니다.
  • '의 키워드는 기본값 내보내기 ' 그리고 ' 내보내다 ”는 “를 내보내는 데 사용됩니다. 내보내기함수() ' 그리고 ' 내보내기변수 ” 파일의 엔터티입니다.
  • 이 파일을 가져오면 내보낸 함수와 변수를 사용할 수 있게 됩니다.

index.js

'index.js'는 내보낸 함수와 변수를 가져와 사용할 보조 파일이며 아래에 명시된 코드가 포함되어 있습니다.

수입 수출함수, { 내보내기변수 } ~에서 './app.js' ;

내보내기 기능 ( ) ;

콘솔. 통나무 ( 내보내기변수 ) ;

위 코드에서 “ 수입 ” 문은 기본 “을 가져오는 데 사용됩니다. 내보내기함수() '와 변수 ' 내보내기변수 ' 로부터 ' app.js ” 파일.

그런 다음 가져온 두 엔터티가 모두 호출되어 확인 목적으로 콘솔을 통해 표시됩니다.

이제 메인 “ index.js ” 아래에 명시된 명령을 사용하여 파일을 생성합니다.

노드 인덱스. JS

생성된 출력은 가져온 요소가 ' 오류 발생 없이 올바르게 작동하고 있음을 보여줍니다. ReferenceError: 요구 사항이 정의되지 않았습니다. ” 오류:

이것이 지정된 오류를 해결하는 것입니다.

결론

'를 해결하려면 ReferenceError: 요구 사항이 정의되지 않았습니다. ' 오류가 발생하면 '을(를) 제거하세요. 유형 ” 값이 “인 키 기준 치수 ' 로부터 ' 패키지.json ” 또는 현재 작업 중인 파일 확장자를 “ .cjs '. ES6 모듈 버전에서 작업하려는 경우 ' 필요하다() ” 방법은 “ 수입 ” 진술이 접근합니다. 이 가이드에서는 ' ReferenceError: 요구 사항이 정의되지 않았습니다. node.js의 '오류'