web-dev-qa-db-ja.com

エラー[ERR_REQUIRE_ESM]:ノード12でのes6モジュールの使用方法

から https://2ality.com/2019/04/nodejs-esm-impl.html Node 12はes6モジュールをサポートする必要がありますが、エラー:

質問:ノード12でes6モジュールを使用するMVPを作成するにはどうすればよいですか?

package.json

{
  "name": "dynamic-es6-mod",
  "version": "1.0.0",
  "description": "",
  "main": "src/index.mjs",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node src/index.mjs"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "globby": "^10.0.1"
  }
}
$ node -v
$ 12.6.0
$ npm run start


internal/modules/cjs/loader.js:821
  throw new ERR_REQUIRE_ESM(filename);
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /Users/dev/dynamic-es6-mod/src/index.mjs
    at Object.Module._extensions..mjs (internal/modules/cjs/loader.js:821:9)
    at Module.load (internal/modules/cjs/loader.js:643:32)
    at Function.Module._load (internal/modules/cjs/loader.js:556:12)
    at Function.Module.runMain (internal/modules/cjs/loader.js:839:10)
    at internal/main/run_main_module.js:17:11
2
Matthew Harwood

新しいes6インポート/エクスポートステートメントをサポートするフラグ-experimental-modulesを追加するだけで、次のように順序が重要になります。

    "start": "node --experimental-modules src/index.mjs "
6