ES2015 node.js中的可选Imports

时间:2015-11-29 20:32:16

标签: javascript node.js import ecmascript-6

有没有办法使用ES2015(使用import语法)导入模块只有它存在?

例如,我想使用本机编译的模块(如果可以安装),但如果因为任何原因失败,则回退到pure-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语法执行此操作?

1 个答案:

答案 0 :(得分:3)

这在ES2015中是不可能的,导入只能在顶级工作。由于您正在使用节点,因此在这种情况下我会使用require。