私は Node.js での ES6 インポートの使い方を習得しようとしており、次の例で提供されている構文を使用しようとしています。
チートシートリンク
見ていますサポートテーブルしかし、どのバージョンが新しいインポート ステートメントをサポートしているかはわかりませんでした (テキスト import/require を探してみました)。現在、Node.js 8.1.2 を実行しており、チートシートが .js ファイルを参照しているので、.js ファイルでも動作するはずだと考えています。
コードを実行すると(チートシートの最初の例から抜粋):
import { square, diag } from 'lib';
次のエラーが発生します:
SyntaxError: 予期しないトークンのインポート。
インポートしようとしているライブラリへの参照:
//------ lib.js ------
export const sqrt = Math.sqrt;
export function square(x) {
return x * x;
}
export function diag(x, y) {
return sqrt(square(x) + square(y));
}
何が欠けているのでしょうか。また、どうすれば自分の発言をnode
認識できるのでしょうか。import
ベストアンサー1
Node.js には ES6 サポートの実験的なサポートが含まれています。詳細については、こちらをご覧ください。esm を有効にする。
TLDR;
Node.js >= v13
Node.js 13 以降では非常に簡単です。次のいずれかを実行する必要があります。
- 拡張子を付けてファイルを保存する
.mjs
か、 { "type": "module" }
最も近い を追加しますpackage.json
。
ECMAScript モジュールを使用するには、上記のいずれかを実行するだけで済みます。
Node.js <= v12
Node.jsバージョンを使用している場合9.6- 12、拡張子付きの ES6 モジュールを含むファイルを保存し.mjs
、次のように実行します。
node --experimental-modules my-app.mjs