JavaScript import vs require
이 기사에서는 JavaScript 구문require()
와import()
의 주요 차이점을 소개합니다. 또한 ES6 및 CommonJS 모두에서 사용할 수있는 컨텍스트와 상세 정보를 제공합니다.
JavaScript의require()
이것은 내장 node.js 문이며 다른 개별 파일의 모듈을 포함하는 데 가장 일반적으로 사용됩니다. JS 파일을 읽고 실행하고 내보내는 객체를 반환하는 방식으로 작동합니다. 코어 노드 모듈, 커뮤니티 기반 및 로컬 모듈을 통합하는 기능으로 인해 매우 인기가 있습니다.
require()
를 사용하여 JavaScript에 내장 모듈을 포함 할 수 있습니다.
const express = require('express');
로컬 모듈을 포함하는 것도 쉽습니다.
require('local_module');
위에서 설명한대로node.js
는 지정된 경로에서local_module.js
를 찾으려고합니다. 출력은 노드가 찾은 내용에 따라 지연됩니다. 지정된 경로에 파일이 있으면 출력에 모듈의 내용이 표시됩니다. 그렇지 않은 경우 아래와 같은 오류가 발생할 수 있습니다.
Error: Cannot find module 'local_module'
at Function.Module._resolveFilename(module.js: 470: 15)
at Function.Module._load(module.js: 418: 25)
at Module.require(module.js: 498: 17)
at require(internal / module.js: 20: 19)
at repl: 1: 1
at ContextifyScript.Script.runInThisContext(vm.js: 23: 33)
at REPLServer.defaultEval(repl.js: 336: 29)
at bound(domain.js: 280: 14)
at REPLServer.runBound[as eval](domain.js: 293: 12)
at REPLServer.onLine(repl.js: 533: 10)
JavaScript의import()
import()
는 ES6 모듈입니다. export()
와 함께 일반적으로 ES6 가져 오기 및 내보내기라고합니다. 이는 본질적으로 문이 ES 모듈 외부의 다른 파일 유형과 함께 사용할 수 없음을 의미합니다.
import()
문을 사용하면 사용자가 자신의 모듈을 가져 와서 프로그램에서 사용할 수 있습니다. 구문은 다음과 같습니다.
import './this-module.js';
사용자는 가져올 모듈의 파일 경로를 지정합니다.
JavaScript에서require
와import
의 주요 차이점
require()
는 CommonJS를 사용하는node.js
문이지만import()
는 ES6에서만 사용됩니다.
require()
는 파일 (어휘가 아님)에 들어있는 곳에 남아 있으며import()
는 항상 맨 위로 이동합니다.
require()
는 프로그램의 어느 지점에서나 호출 할 수 있지만import()
는 파일의 시작 부분에서만 실행할 수 있습니다.
대부분의 사람들은require()
문으로 직접 코드를 실행하지만import()
로 작업 할 때 실험적 모듈 기능 플래그를 사용하는 것을 선호합니다.
마지막으로require()
문을 사용하는 모든 파일은.js
파일로 저장되는 반면import()
가있는 파일은.mjs
파일로만 저장할 수 있습니다.
프로그램에서 동시에 사용할 수 없습니다.
일반적으로import()
는 사용자가 필요한 모듈 부분 만 선택하고로드 할 수 있기 때문에 더 선호됩니다. 이 명령문은require()
보다 성능이 우수하며 메모리를 절약합니다.