JavaScript/Node.js에서 'require가 정의되지 않았습니다' 오류를 해결하는 방법

Javascript Node Jseseo Requirega Jeong Uidoeji Anh Assseubnida Olyuleul Haegyeolhaneun Bangbeob



프로그래밍 과정에서 구문 오류나 런타임 오류와 같은 다양한 오류가 발생할 수 있습니다. 참조 오류는 런타임 오류입니다. 초기화되지 않은 변수나 현재 범위에 존재하지 않는 변수를 참조한 경우 참조 오류가 발생합니다. 'require가 정의되지 않았습니다'라는 오류는 'require' 키워드에 문제가 있음을 나타내는 참조 오류입니다.

이 문서에서는 이 오류가 발생하는 이유와 해결 방법에 대해 자세히 설명합니다.

JavaScript/Node.js에서 'require가 정의되지 않았습니다' 오류를 해결하는 방법은 무엇입니까?

Node.js 환경이 아닌 웹브라우저에서 실행되도록 되어 있던 JavaScript 파일에 require() 함수가 발견되면 “require is notfound”라는 참조 오류가 발생합니다.







require() 함수란 무엇인가요?

require() 함수는 전역 범위를 가지며 Node.js에서 제공됩니다. Node.js 애플리케이션에서 모듈을 로드하고 실행합니다. 많은 브라우저는 Node.js를 지원하지 않으므로 require() 기능을 사용할 수 없습니다.



이 오류는 언제 발생합니까?

이 오류는 일반적으로 JavaScript가 Node.js와 함께 두 브라우저 모두에서 사용될 때 발생합니다. 오류는 세 가지 방식으로 발생할 수 있습니다.



  • 브라우저 환경에서 require() 함수를 사용하는 경우.
  • Node.js 및 package.json 파일에서 require() 함수를 사용할 경우 유형이 “module”로 설정됩니다.
  • Node.js에서 require() 함수를 사용하면 파일 확장자는 .mjs입니다.

구문 const ' 사용 myFile = require('./my-file') ” 웹 기반 환경에서는 다음과 같은 오류가 발생합니다.





이 오류를 해결하기 위한 다양한 솔루션에 대해 논의해 보겠습니다.



사례 1: 브라우저 환경 오류

require() 함수는 Node.js에서 특별히 작동합니다. 대부분의 브라우저는 Node.js와 호환되므로 require() 기능을 지원하지 않습니다. ES6 모듈 가져오기 내보내기 모듈은 'ReferenceError require가 정의되지 않았습니다' 오류를 해결합니다. 다음은 이를 수행하는 방법을 보여주는 코드의 예입니다.

문서 유형 HTML >

< >





< 스크립트 유형 = '기준 치수' 소스 = 'index.js' > 스크립트 >

< 스크립트 유형 = '기준 치수' 소스 = '파일.js' > 스크립트 >

>

HTML >

Index.js가 먼저 로드되어 해당 기능을 file.js에서 활용할 수 있습니다.

index.js 파일

index.js는 함수 product와 변수 x 및 y를 정의합니다.

수출 기능 제품 ( 에, 비 ) {

반품 * ;

}

내보내다 const = 10 ;

내보내다 const 그리고 = '테일러'

file.js

index.js 파일의 기능은 file.js라는 다른 js 파일에서 사용할 수 있습니다. File.js는 다음과 같습니다.

수입 { 제품, x, y } ~에서 './index.js' ;

콘솔. 통나무 ( 제품 ( 10 , 5 ) ) ; // 50을 표시합니다.

콘솔. 통나무 ( 엑스 ) ; // 10을 표시합니다.

콘솔. 통나무 ( 그리고 ) ; // 'TAYLOR'가 표시됩니다.

산출

다음 출력은 ES6 가져오기 내보내기 모듈을 사용하여 브라우저 환경에서 'require가 정의되지 않았습니다' 오류를 제거할 수 있는 방법을 보여줍니다.

사례 2: Node.js에서 작업하는 동안 오류가 발생했습니다.

package.json 파일에서 값 모듈을 사용하여 유형 속성을 설정하면 이 오류가 발생합니다. 확장자가 .mjs인 파일에서 require() 함수를 사용하는 경우에도 발생할 수 있습니다.

모듈에 설정된 유형 특성을 제거하고 확장자가 .mjs인 모든 파일의 이름을 .js로 바꾸면 이 오류가 제거될 수 있습니다.

//패키지.json

{

// require()를 사용하기 위해 모듈에 설정된 유형 속성을 제거합니다.

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

}

index.js 파일

index.js 파일은 'product' 함수와 변수 범위를 갖는 변수 x 및 y를 정의합니다. index.js 파일은 다음과 같습니다.

기능제품 ( 에, 비 ) {

반품 * ;

}

글로벌. 엑스 = 13 ;

글로벌. 그리고 = '빠른' ;

기준 치수. 수출 = {

제품,

} ;

file.js

require() 키워드를 사용하여 JS 파일 index.js에서 함수 제품을 가져옵니다. file.js 파일은 다음과 같습니다.

const { 제품 } = 필요하다 ( './index.js' ) ;

콘솔. 통나무 ( 제품 ( 10 , 9 ) ) ; // 90을 표시합니다.

콘솔. 통나무 ( 엑스 ) ; // 13을 표시합니다.

콘솔. 통나무 ( 그리고 ) ; // 'swift'를 표시합니다.

산출

출력에는 package.json 파일에서 모듈로 설정된 유형의 속성을 제거하여 '필요한 항목을 찾을 수 없습니다.' 오류를 해결하는 방법이 표시됩니다.

기억할 사항

  • 모듈을 가져오기 위한 ES6 모듈 구문은 모듈 파일의 확장명에 대해 구체적이어야 합니다. JavaScript는 적절한 처리를 위해 파일 형식을 알아야 합니다.
  • ES6 모듈은 require() 함수와 동시에 사용할 수 없습니다.

결론

브라우저에서 ES6 모듈 구문을 사용하면 'require가 정의되지 않았습니다' 문제가 해결됩니다. 그렇지 않으면 코드 조각을 Node.js에서 실행해야 합니다. 브라우저에서 require() 함수를 사용할 때 오류가 발생합니다. 이 기사에서는 'require가 정의되지 않았습니다' 문제를 예제를 통해 어떻게 해결할 수 있는지 논의했습니다.