编辑新(更好)的答案
Node团队很慢。同时,带来我们Lodash的那个家伙(John-David Dalton)设想了一个 绝妙的
解决方案,他的想法是在2019年获得全面ES6模块支持的最佳方式。
(实际上,我 想 删除我以前的答案,但出于历史目的已将其保留。)
新的解决方案超级简单。
第1步:
npm i esm
(https://www.npmjs.com/package/esm了解软件包详细信息)
第2步:
node -r esm yourApp.js
这就是全部:实际上就是那么容易。只需添加
-r esm为Node arg,一切就可以神奇地工作了(它甚至比输入还少
--experimental-modules!)谢谢约翰·戴维·道尔顿!
就像我在原始答案中所说的那样,大概 有朝一日 Node最终会完全释放对ES6的支持,但是在这种情况下,采用它就像从一些脚本中删除“ -r
esm”一样容易:D
最后,要归功于到期日,尽管我没有从他的回答中找到答案,但@Divyanshu Rawat实际上在我进行此更新之前就提供了该库的前身的答案。
原始答案
--experimental-modules尚不支持命名出口:
--experimental-modules不支持从commonjs模块导入命名的导出(节点自身的内置组件除外)。
- https://github.com/apollographql/graphql-tools/issues/913
这就是为什么您无法使用语法的原因:
import { throttle } from 'lodash';相反(至少现在),您必须破坏所需的东西:
import lodash from 'lodash'; const { throttle } = lodash;大概有一天,Node将增加对所有ES Module功能的支持。



