gpt4 book ai didi

javascript - 加载 ecmascript 模块(.mjs 文件)作为 nodejs cli 的主要入口

转载 作者:行者123 更新时间:2023-11-30 19:33:59 26 4
gpt4 key购买 nike

有没有办法将 ecmascript 模块文件用作使用 package.json bin 条目导出的 cli 的主要条目文件?

我想我需要以某种方式提供 --experimental-modules 标志,但如果不将 mjs 文件包装到 js 文件中然后通过调用 mjs 文件,我想不出一种方法

#!/usr/bin/env node
// pseudocode
child_process.spawn(
'node',
['--experimental-modules', 'bin.mjs'],
{ stdio: 'inherit' }
)

考虑到调用 child_process.spawn 的开销,我希望能够替换我的库中的那些包装器。

编辑:请注意,我的 cli 必须可以使用 npm i -g 安装为可执行文件,据我所知,这使得无法将任何命令行标志传递给 Node 进程(参见 answer,我将无法使用)

编辑2:我想我也应该在这里留下相关图书馆的链接 @magic/cli ,这是我目前的方法(我包括一个 bin.js 文件,child_process.spawns 一个 mjs 文件)

最佳答案

Node 13 默认启用--experimental-modules,所以#!/usr/bin/env node 就足够了。但是,仍然会发出警告。

(node:23260) ExperimentalWarning: The ESM module loader is experimental.

关于javascript - 加载 ecmascript 模块(.mjs 文件)作为 nodejs cli 的主要入口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56140345/

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