检测 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 脚本中调用“nvm use”,并在脚本执行后保留所选节点版本?