检测 NODE.JS 脚本是通过 bash(unix)/cmd(windows)直接调用还是导入(ESM 模块加载器)[重复]

Posted

技术标签:

【中文标题】检测 NODE.JS 脚本是通过 bash(unix)/cmd(windows)直接调用还是导入(ESM 模块加载器)[重复]【英文标题】:Detect if NODE.JS script is called direct via bash (unix) / cmd (windows) or imported (ESM module loader) [duplicate] 【发布时间】:2020-05-02 07:14:38 【问题描述】:

如何检测我的 node.js 文件是直接从控制台(windows 和 unix 系统)调用还是使用 ESM 模块导入加载 (import foo from 'bar.js')

已经针对常规 node.js 文件 (Detect if called through require or directly by command line) 回答了该问题,但由于 require 在打开 --experimental-modules 的 .mjs 文件中不可用,因此我需要不同的解决方案。

【问题讨论】:

【参考方案1】:

Node.js 当前不向 es 模块公开该信息,并且不确定它是否会[0]。我想说目前最安全的选择是将 CLI 逻辑放入单独的文件中。

0:https://github.com/nodejs/modules/issues/274

【讨论】:

以上是关于检测 NODE.JS 脚本是通过 bash(unix)/cmd(windows)直接调用还是导入(ESM 模块加载器)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何通过bash脚本检测ant / maven的构建错误?

如何在 bash 脚本中调用“nvm use”,并在脚本执行后保留所选节点版本?

如何检测 Node 的 process.stdout 是不是正在通过管道传输?

通过NVM安装node

do 循环的 Bash 脚本,用于检测经过的时间段然后继续

如何通过 cron 作业执行 Node.js 脚本?