长话短说,我试图在CommonJS模块中使用一个只有ES6模块入口点的npm包,即Bids-Validator
(GitHub),因为我的整个50多个模块的应用程序都是在CommonJS中构建的。根据节点文档,这样做的标准方法是使用import()
函数。我使用以下代码尝试了这种方法:
async function importValidator() {
const { validate } = await import('bids-validator')
return validate
}
const validate = importValidator()
但是,这会导致bids-validator
包出错,而不一定是上面的导入函数:
error: unhandledRejection: Cannot use import statement outside a module
/*/app/api/node_modules/bids-validator/index.js:2
import validate from './validators'
有没有一种方法可以绕过这个问题,这样我就可以在CommonJS模块中使用这个包了?
检查package.json中选择了什么作为选项。确保选择类型:“common.js”而不是“module”