使用节点如何将我的 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
其他
- Linux
- 使用 nvm
- 虽然我正在使用 npm 并且有一个 package.json 文件,但我不想使用 babel 或 webpack 或其他一些开发依赖来让它工作。
- 我很高兴使用实验性功能。
问题
使用 node 和 ES6,如何将 ES6 模块导入命令行 javascript 程序?
根据 Pointy 的评论,我进行了这些更改
- 已将 mymodule.js 重命名为 mymodule.mjs
更改为导入到
import mymodule from './mymodule.mjs'
在 package.json 中添加了顶级字段
"type": "module",
我在 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
其他
- Linux
- 使用 nvm
- 虽然我正在使用 npm 并且有一个 package.json 文件,但我不想使用 babel 或 webpack 或其他一些开发依赖来让它工作。
- 我很高兴使用实验性功能。
问题
使用 node 和 ES6,如何将 ES6 模块导入命令行 javascript 程序?
根据 Pointy 的评论,我进行了这些更改
- 已将 mymodule.js 重命名为 mymodule.mjs
更改为导入到
import mymodule from './mymodule.mjs'
在 package.json 中添加了顶级字段
"type": "module",