ES2015 node.js中的可选导入

有没有一种方法使用ES2015(使用import语法)来导入一个模块,只要它存在?

例如,如果可以安装,我想要使用本地编译的模块,但是如果由于某种原因失败,则会回退到纯-js模块。

我曾假设以下将工作:

 let crc32; try { import Sse4Crc32 from 'sse4_crc32'; crc32 = Sse4Crc32.calculate; } catch (e) { import crcJs from 'crc'; crc32 = crcJs; } 

但是它给出的错误'import' and 'export' may only appear at the top level 。 有没有办法使用ES2015中的import语法来做到这一点?

这在ES2015中是不可能的,import只能在顶层工作。 既然你使用节点,我会在这种情况下使用require。