EDITED NEW (AND MUCH BETTER) ANSWER
node 团队是...缓慢的与此同时,给我们带来Lodash的同一个人(John David Dalton)设想了一个brilliant解决方案,他的 idea 是2019年获得ES6模块全面支持的最佳方式.
(事实上,我很想删除我之前的答案,但出于历史原因,我把它留了下来.)
新的解决方案非常简单.
Step #1:
npm i esm
(https://www.npmjs.com/package/esm用于包装细节)
Step #2:
node -r esm yourApp.js
这就是全部:真的就这么简单.只需添加-r esm
作为 node 参数,一切都会神奇地工作(它甚至比输入--experimental-modules
更少!)谢谢约翰·大卫·道尔顿!!!
正如我在最初的回答中所说,大概someday Node最终将发布完整的ES6支持,但当这发生时,采用它将与从几个脚本中删除"-r esm"一样简单:D
最后,在我没有通过他的回答找到答案的情况下,@Divyanshu Rawat在我进行此更新之前很久就提供了一个关于该库前身的答案.
ORIGINAL ANSWER
--experimental-modules
还不支持命名导出:
--实验模块不支持从commonjs模块导入命名导出( node 自身的内置除外).
这就是您无法使用语法的原因:
import { throttle } from 'lodash';
相反(至少现在),你必须 destruct 你需要的东西:
import lodash from 'lodash';
const { throttle } = lodash;
大概有一天,Node将添加对所有ES模块功能的支持.