ノードでES 6インポート構文を使用する方法.js


モジュールは、1つ以上の値をエクスポートするJavaScriptファイルです.エクスポートされた値は、変数、オブジェクト、または関数です.
ES 6インポート構文は、異なるJavaScriptファイルからエクスポートされたモジュールをインポートすることができます.それは反応の向こう側にモジュールを使用して、ネイティブのアプリケーションに反応する一般的なパターンです.構文は以下のESモジュール標準から成ります:
import XXX from 'xxx';
ESモジュールはモジュールで動作するecmascript規格です.ノード.JSはCommonJS標準を使ってモジュールをインポートします.このタイプの標準の構文は次のようになります.
const XXX = require('xxx');
ノードjsはES 6インポートを直接サポートしません.試してみてくださいimport JSファイルの構文
// index.js

import { ApolloServer, gql } from 'apollo-server';
ノードを実行します.使用するJSサーバーnpm start or npm run dev 次のエラーが発生します.

このエラーの解決策は、上記のエラースニペットの最初の行にありますa recommend way by Node.js . 設定する"type": "module" インpackage.json ファイル.
{
  "type": "module"
}
このソリューションは最新のノードで動作します.jsバージョン15.4.x 上記のバージョンでは14.x.x .


14より低いノードバージョンを使用する環境についてはどうですか
この問題のもう一つの解決策はBabel . JavaScriptコンパイラで、最新の構文を使用してjsを書くことができます.バベルは、フレームワークやプラットフォームではありません.これは、JavaScriptで、したがって、ノードで書かれるどんなプロジェクトにも使用できることを意味します.JSプロジェクトも.
次のdev依存関係をターミナルウィンドウからインストールします.
npm i -D @babel/core @babel/preset-env @babel/node
次に、ノードのルートにファイルを作成します.JSプロジェクトbabel.config.json 次の行を追加します.
{
  "presets": ["@babel/preset-env"]
}
パッケージ@babel/node JISコードをノードでコンパイルするCLIユーティリティです.それを実行する前にバベルのプリセットとプラグインとJSのプロジェクト.これは、任意の構成の言及を読んで適用されることを意味babel.config.json ノードプロジェクトを実行する前に.
置換するnode with babel-node サーバを実行するにはstart or dev スクリプト
ノードサーバの実行例npm run dev スクリプト
{
  "scripts": {
    "dev": "nodemon --exec babel-node server.js"
  }
}

Cover image by Jake Weirick