2016-12-02 10 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がインストールされている、かなり古いです、と私はそれがこの構文をサポートしていないと思います。私はNodeJSこの構文をサポートしていることを示しているが、NodeJSドキュメントは、このようなモジュールの構文を指定したことがないと思われ、エラーなしで正常にこのプロジェクトを実行することができますしかし

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

:代わりに、それは次のようにする必要があります。ここでそれを使う理由は何ですか?ご協力ありがとうございます。

+0

単独ではサポートしていません。一部の人々はこれを回避するためにバベルを使用します。 – Brad

答えて

7

npm startを実行すると、start script in the package.jsonが実行され、start.jsが実行されます。

start.jsは、新しいES6の構文(インポートを含む)をノードがその場で理解できるプレーンなES5 JavaScriptに変換するために使用します。 .babelrcは、es2015 presetが使用されていることを示しています。これは、ES2015(ES6)コードを通常のES5 JSに変換します。

重要な変換器はtransform-es2015-modules-commonjsです。importを予想通りにrequireに変換します。

+1

迅速な対応をありがとうございます。 – IcyBrk

関連する問題