노드 8.9.1을 설치했습니다 (v10.5.0에서 동일한 문제가 발생 함).
.mjs
가있는 파일의 npm 패키지에서 명명 된 가져 오기를 사용하려고합니다.
import { throttle } from lodash;
내가 달린다 :
node --experimental-modules index.mjs
그리고 나는 얻는다 :
와이즈 비즈
v10 LTS에서 실험을 중단 해야합니다. 더 많은 모듈 작성자가 악 대차를 뛰어 넘었습니까?SyntaxError: The requested module 'lodash' does not provide an export named 'throttle' at ModuleJob._instantiate (internal/modules/esm/module_job.js:80:21)
--experimental-modules
-
답변 # 1
-
답변 # 2
import lodash from 'lodash'; const { throttle } = lodash;
를 사용해야합니다 확장 프로그램.참조 : https://nodejs.org/api/esm.html
업데이트 :
아직 메서드를 내 보내지 않은 것 같습니다.
내가.mjs
를 가지고 있다고 가정 내용 포함Once this has been set, files ending with .mjs will be able to be loaded as ES Modules.
hello.mjs
에서 그것을 사용할 수 있습니다 이처럼export function sayHello() { console.log('hello') }
-
답변 # 3
lodash가 모듈로 작성된 경우
index.mjs
수출import {sayHello} from './hello.mjs' sayHello()
:lodash/index.mjs
, 그러면 당신은throttle
할 수있을 것입니다여기서의 문제는 commonjs에는 명명 된 내보내기와 같은 것이 없다는 것입니다. 이는 commonjs 모듈에서 한 가지만 내보내는 것을 의미합니다.
lodash는export const throttle = ...;
라는 속성을 포함하는 객체를 내 보낸다고 생각합니다. .질문의 두 번째 부분에서는 사람들이 더 이상 실험을하지 않으면 천천히 ES 모듈을 채택하기 시작할 것입니다. 이 글을 쓰는 시점에는 여전히 (Node.js v11.14)입니다.
import { throttle } from lodash;
관련 자료
- javascript - express - 요청한 모듈이 'user'라는 내보내기를 제공하지 않습니다
- node.js - 요청한 모듈이 내보내기를 제공하지 않습니까?
- javascript - ts 파일의 모듈 내보내기가 모듈 오류가 아닙니다
- alexa - 요청한 기술이 lauchrequest에 유효한 응답을 제공하지 않았습니다
- javascript - Typescript로 변환 한 후 기본 내보내기 모듈이 없습니다
- java - 각 모듈이있는 다중 모듈은 스프링과 함께 정지 서비스를 제공합니다
- javascript - 폴더의 모든 파일을 모듈로 가져 와서 모두 개체로 내보내려면 어떻게합니까?
- javascript - 먼저 가져 오지 않고 JS 모듈 내보내기
- javafx - Java 11 패키지가 내 보내지 않는 모듈에 선언되었습니다
- node.js - 자바 스크립트의 다른 파일에서 모듈 내보내기 함수를 호출하는 방법
- nestjs - Nestjs에서 특정 모듈에 Guard를 제공하는 방법은 무엇입니까?
- 클래스를 AMD 모듈로 내보내도록 강화 된 타이핑 구성
- javascript - ES2015 모듈에서 내보내기 * 및 가져 오기 *가 다르게 작동하는 이유
- Powershell 모듈 함수에서 변수를 내보내는 방법은 무엇입니까?
- node.js - 디스크 파티션에 노드 모듈을 요구하려면 어떻게해야합니까?
- node.js - 오류 - routeget ()에 콜백 함수가 필요하지만 [object promise]가 있습니다
- javascript - 다른 파일에서 가져올 때 메서드가 정의되지 않았습니다
- Nodejs의 다른 모듈에서 배열이 참조로 사용되는 경우가 절대적으로 있습니까?
- node.js - 배열의 배열을 파일에 어떻게 저장합니까?
- node.js - 노드 Docker 컨테이너가있는 Argon2
- node.js - connect-mongodb-session - typeerror : 정의되지 않은 속성 'store'를 읽을 수 없습니다 (mongodb, nodejs, connect-mongodb-session)
- node.js - sqlite3를 사용하기 위해 전자 앱에서 knex를 패키징하는 방법
- nodejs의 필수 모듈은 항상 정의되지 않았습니다
--experimental-modules
아직 명명 된 내보내기를 지원하지 않습니다 :https://github.com/apollographql/graphql-tools/issues/913
이렇게하면 구문을 사용할 수 없습니다 :
(현재는 최소한) 필요한 것을 파괴해야합니다 :
어쩌면 언젠가 노드는 모든 ES 모듈 기능에 대한 지원을 추가 할 것입니다.