使用节点如何将我的 ES6-export-default 模块导入我的命令行 javascript 程序?

Using node how do I import my ES6-export-default module into my command line javascript program?

我在 mymodule.js

中有一个 ES6 模块
export default function () {

  console.log('hello world');

}

在app.js里面,我导入了模块

import mymodule from 'mymodule'; //also tried './mymodule' and './mymodule.js'

mymodule();

从命令行执行

node app.js

node --experimental-modules app.js

错误信息

import mymodule from 'mymodule';
   ^^^^^^^^

SyntaxError: Unexpected identifier
at Module._compile (internal/modules/cjs/loader.js:703:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)
at Module.load (internal/modules/cjs/loader.js:628:32)
at Function.Module._load (internal/modules/cjs/loader.js:555:12)
at internal/modules/esm/translators.js:84:15
at Object.meta.done (internal/modules/esm/create_dynamic_module.js:40:9)
at file:///home/a/code/marionette/test_area/app.js:9:13
at ModuleJob.run (internal/modules/esm/module_job.js:111:37)
at processTicksAndRejections (internal/process/task_queues.js:88:5)
at process.runNextTicks [as _tickCallback] (internal/process/task_queues.js:58:3)

版本

node --version                                                                                                                                  
v12.0.0

npm --version
6.9.0

其他

问题

使用 node 和 ES6,如何将 ES6 模块导入命令行 javascript 程序?

根据 Pointy 的评论,我进行了这些更改

  1. 已将 mymodule.js 重命名为 mymodule.mjs
  2. 更改为导入到

    import mymodule from './mymodule.mjs'

  3. 在 package.json 中添加了顶级字段

    "type": "module",