2016-12-02 7 views
4

GitHub에서 다운로드 한 NodeJS 프로젝트를보고 있습니다. 그것은이 같은 ES6 모듈 가져 오기 구문을 사용하는 기본 파일, server.js있다 :NodeJS는 "가져 오기"스타일 모듈로드를 지원합니까?

import express from 'express'; 
import bodyParser from 'body-parser'; 
import fs from 'fs'; 
import { search } from './lib/words'; 

내가 NodeJS 버전 4.6.0이 설치되어있는, 꽤 오래된, 그리고 나는이 구문을 지원합니다 생각하지 않습니다.

var express = require(express) 
var bodyParser = require('body-parser') 
... 

그러나 나는 NodeJS이 구문을 지원하는 프로그램을 생각하는 오류없이 제대로이 프로젝트를 실행할 수 있지만, NodeJS 문서는 결코 같은 모듈 구문을 지정합니다 : 같은 대신해야한다. 우리가 여기서 그것을 사용할 수있는 이유는 무엇입니까? 도와 줘서 고마워.

+0

자체 지원하지 않습니다. 어떤 사람들은 이것을 극복하기 위해 바벨을 사용합니다. – Brad

답변

7

npm start을 실행하면 start script in the package.json이 실행되어 start.js이 실행됩니다.

start.js은을 사용하여 새 ES6 구문 (가져 오기 포함)을 Node가 즉시 이해하는 일반 ES5 JavaScript로 변환합니다. .babelrces2015 preset이 사용되고 있으며 ES2015 (ES6) 코드를 일반 ES5 JS로 변환합니다.

중요한 변압기는 transform-es2015-modules-commonjs이며 예상대로 importrequire으로 변환합니다.

+1

빠른 응답을 보내 주셔서 감사합니다. – IcyBrk