2017-11-14 9 views
2

という名前の輸出を提供していません8.9.1ノード--experimental-モジュールは、要求されたモジュールは、私がインストールした

私はバベルせずに、モジュールを搭載した私のjsファイルを実行しようとしているが、私は

を取得

"予期しないトークンのインポート"

node --experimental-modules server.js 
(node:4016) ExperimentalWarning: The ESM module loader is experimental. 
/Users/cherdave/projects/pelemobil/peleserver/src/server.js:1 
(function (exports, require, module, __filename, __dirname) { import express from 'express'; 
                   ^^^^^^ 

UPDATE:

私は拡張子を.mjsために私の.jsメインのファイルを変更しなければなりませんでした。私は再び実行します。

node --experimental-modules server.js 

と私が取得:

The requested module does not provide an export named 'getReq' 


(node:4748) ExperimentalWarning: The ESM module loader is experimental. 
SyntaxError: The requested module does not provide an export named 'getReq' 
    at checkComplete (internal/loader/ModuleJob.js:75:27) 
    at moduleJob.linked.then (internal/loader/ModuleJob.js:58:11) 
    at <anonymous> 

UPDATE 2:

私は別のケースで持っているこの同じエラー。問題は.mjs拡張でした。プロジェクト全体のすべてのファイルがインポートされることが重要です。この場合、moduelは.mjs拡張子(メインエントリファイルだけでなく)を持つ必要があります。 mjsにはまだ多くの問題があります。require()を使用することはできませんし、mjsに移行するのはとても複雑なので、nodeバージョン10を待つ方が良いでしょう。 '2。チェックリスト:注意するべき点http://2ality.com/2017/09/native-esm-node.html

答えて

0

.mjsの拡張子を使用する必要があります。

これを設定すると、.mjsで終わるファイルをESモジュールとしてロードすることができます。

参照:https://nodejs.org/api/esm.html

更新:あなたはまだメソッドをエクスポートしていないよう

が見えます。

私は私の答えを提案することを申し訳ありませんが、この

import {sayHello} from './hello.mjs' 
sayHello() 
+0

ようindex.mjsに私は新しいエラーで私の答えを更新しましたおかげで、それを使用することができ、コンテンツ

export function sayHello() { console.log('hello') } 

hello.mjsを持っていると仮定ノード8 – stackdave

+0

が更新されたモジュールを実行できるようになりました。 –

+0

私はプロジェクト全体でmoduelesでインポートされたすべてのファイルが拡張子.mtsを持つ必要があることを認識しています。私の答えの更新を参照してください。 – stackdave

関連する問題