有没有办法使用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
语法执行此操作?
答案 0 :(得分:3)
这在ES2015中是不可能的,导入只能在顶级工作。由于您正在使用节点,因此在这种情况下我会使用require。