gpt4 book ai didi

node.js - ES6 类函数中导入模块

转载 作者:太空宇宙 更新时间:2023-11-04 01:45:34 25 4
gpt4 key购买 nike

我已将项目迁移到 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
}
}

但现在使用 Michael Jackson Scripts a.k.a .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
}
}

我的应用程序有许多不会立即使用的文件/模块,并且将来可以随时添加更多文件/模块,因此不能在文件开头对导入进行硬编码。

有没有办法在需要时动态按需导入文件?

最佳答案

this 进行一些修改答案,我设法让它工作通过:

import Koa from 'koa'

export default = class Core{
constructor() {
this.init = this._init.bind(this)

return this.init()
}

async _init(){
const router = await import('./Router')

//use imported file/module here
}
}

或者,如果您愿意,也可以使用 promise :

   import('./router')
.then(something => {
//use imported module here
});

这目前适合我,直到规范最终确定并发货

关于node.js - ES6 类函数中导入模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51635489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com