我已将项目迁移到ESM,因此在nodejs中的所有文件中都使用了.mjs。
在CommonJs中,我可以在ES6类函数的中间需要一个文件来加载它
只有
需要的时候。
module.exports = class Core{
constructor() {
this.init = this._init.bind(this)
return this.init()
}
async _init(){
const module = require('module')
//use required file/module here
}
}
但现在使用迈克尔杰克逊的剧本
.mjs
,我无法按需导入文件:
import Koa from 'koa'
export default = class Core{
constructor() {
this.init = this._init.bind(this)
return this.init()
}
async _init(){
import module from 'module'
//use imported file/module here
}
}
我的应用程序有许多文件/模块没有立即使用,将来还可以添加更多文件/模块,因此在文件开始时硬编码导入不是一个选项。
有没有办法在需要时根据需要动态导入文件?