이 가이드에서는 'ReferenceError: require가 정의되지 않았습니다' 오류를 해결하는 절차를 설명합니다.
- 'ReferenceError: require가 정의되지 않았습니다' 오류를 해결하는 방법은 무엇입니까?
- 이유 1: 애플리케이션 유형이 모듈로 설정되어 있습니다.
- 해결 방법: '유형' 키 제거
- 이유 2: '.mjs'에서 작업 ” 파일
- 해결 방법: 파일 확장자를 '.cjs'로 변환하세요.
- 대체 접근 방식: ES6 문 '가져오기/내보내기' 사용
'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의 '오류'