1. ホーム
  2. node.js

[解決済み] Node.jsでES6インポートを使用するにはどうすればよいですか?[重複しています]。

2022-03-20 20:14:39

質問

Node.jsのES6インポートのコツを掴もうとしていて、この例で提供されている構文を使おうとしているところです。

チートシートリンク

を覗いています。 対応表 しかし、どのバージョンが新しい import 文をサポートしているのか見つけることができませんでした(テキストの 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 の文は?

どのように解決するのですか?

<ブロッククオート

Node.jsでは、ES6をサポートするための実験的なサポートが含まれています。 詳しくはこちらをご覧ください。 https://nodejs.org/docs/latest-v13.x/api/esm.html#esm_enabling .

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