gpt4 book ai didi

node.js - 如何在 Node REPL 中使用 "import"

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

使用 Node.js REPL ,你怎么能import使用 ecmascript 语法的模块?是否有任何版本的 Node.js REPL 现在允许这样做吗?

在 Node.js v10.16.0 中,我使用以下命令访问 REPL:

node --experimental-modules

来源:https://nodejs.org/api/esm.html#esm_enabling

enter image description here

CommonJS 是古老的技术。 Node.js 仍在积极开发中吗?我想知道是否deno REPL 可以做到这一点吗?

最佳答案

目前您不能使用静态import语句(例如import someModule from "some-module")。我不意识到改变这一点的任何努力/票据/拉取请求/意图。

您可以使用import()语法来加载模块!这会返回一个 promise 。例如,您可以创建一个变量 someModule,开始导入,并在完成导入后,将 someModule 设置为该模块:

let someModule
import("some-module")
.then( loaded=> someModule= loaded)

或者您可以直接在您的 Promise 处理程序中使用导入:

import("some-module").then(someModule => someModule.default())

对于更复杂的示例,您可能希望使用异步立即调用函数表达式,因此您可以使用 await 语法:

(async function(){
// since we are in an async function we can use 'await' here:
let someModule = await import("some-module")
console.log(someModule.default())
})()

最后,如果您使用 --experimental-repl-await 标志启动 Node.JS,您可以直接从 repl 使用 async 并删除立即调用的异步函数:

let someModule = await import("some-module")

// because you have already 'await'ed
// you may immediately use someModule,
// whereas previously was not "loaded"
console.log(someModule.default())

关于node.js - 如何在 Node REPL 中使用 "import",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56963708/

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