为什么 JavaScript 文件以 0 && 0 结尾

Eve*_*ert 5 javascript babeljs

深入研究@babel/core包,几乎每个转译的 .js 文件都以以下行结尾:

0 && 0
Run Code Online (Sandbox Code Playgroud)

这样做的目的是什么?

例如,请参阅transpiler-ast.js ,即transpiler-ast.ts的转译。

Bho*_*yar 0

我看到这个0 && 0东西是从 version 添加的7.18.6。来自babel 配置注释

0 && exports.foo = 0为指定的导出注入提示,以帮助 Node.js CJS-ESM 互操作。仅当在模式下将 ESM 重新导出到 CJS 时才需要这样做lazy

因此,这表明添加它是为了帮助理解当 ECMAScript 模块在模式下重新导出到 CommonJS 模块时可编译的 Node.js CommonJS 模块lazy

  • 感谢您进行一些研究并找出“什么”是这样做的。您分享的评论说了*一些事情*,但仍然很不清楚。我正在寻找*为什么*而不是*如何*,但这很有趣。感谢分享! (2认同)