esbuild 0.9

2021-03-11 00:58:15

此版本包含向后 - 不兼容的更改。由于eSBuild在1.0.0之前,这些更改已被释放为新的次要版本,以反映此(如NPM的推荐)。您应该要将Package.json文件中的ESBuild的确切版本固定为eSbuild。或使用只接受^ 0.8.0等修补程序升级的版本范围语法。有关更多信息,请参阅关于SEMV的文档。

最近将此功能添加到节点中。它允许您重写包映射中的导入路径,并防止人员在包中导入某些文件。向eSbuild添加支持是一个破坏的变化(即,在很容易停止工作之前工作的代码),因此在这个破坏更改版本之前增加了对它的支持。

使用此功能的一种方法是重新映射包的导入路径。例如,这将重新删除您的-pkg / ESM / lib.js的导入(" public"导入路径)到您的pkg / dist / Esm / lib.js("私人& #34;文件系统路径):

另一种使用此功能的方法是在不同情况下具有不同的进口路径可能意味着不同的东西。例如,这将重新映射('您的pkg')到您的pkg / beacer.cjs和Import'您的pkg'到您的pkg / imported.mjs:

根据当前平台的进口和浏览器和节点条件,有内置的进口和需要条件。此外,无论当前配置设置如何,默认情况始终适用,并且可以用作捕获 - 所有后退条件。

请注意,当您使用条件时,您的包裹可能会多次结束捆绑包!这是一个微妙的问题,可能由于代码' s状态的重复副本而导致错误。这通常被称为双包危险。避免此方法的主要方式是将所有代码放在requircer条件下,并具有导入条件只是一个灯具包装器,可在您的包装上调用,并使用ESM语法重新导出包裹。

还支持带有-Conditions =标志的自定义条件。这些的含义完全达到了包作者。例如,您可以想象一个需要您配置--Conditions = Test,En-US的包。 Node目前仅核可了推荐使用的开发和生产定制条件。

由于#656,调用service.stop()不再做任何事情,因此不再有强烈的原因来保持eSBuild.StartService()API。它目前所做的主要内容只是使API更复杂,更难使用。您现在可以直接调用esbuild.build()和esbuild.transform()而不是调用esbuild.startservice()。然后(service => service.build())或esbuild.startservice()。然后(服务=&gt ; service.Transform())。

如果您在浏览器中使用eSbuild,则需要调用eSbuild.Initialize({wasmurl})并在调用esbuild.transform()之前等待返回的承诺。它采用eSbuild.StartService()常用的选项。请注意,在节点中使用eSbuild时,eSBuild.BuildSync()和esbuild.transformsync()API仍然存在。关于同步esbuild API没有任何改变。

以前使用与API的元文件是不必要的麻烦,因为您必须自己从输出文件中提取JSON元数据而不是刚刚向您提供返回值。如果您使用的是Write:False,这尤其是虚拟机:因为那么您需要在输出文件上使用for循环,并使用文件路径执行字符串比较,以便查找与元文件相对应的字符串。直接返回元数据是API的重要UX改进。这意味着您现在可以这样做:

esbuild。构建({横幅:{JS:' //横幅',CSS:' / *横幅* /'},页脚:{JS:' //页脚&#39 ;,CSS:' / *页脚* /'},})

这被改变,因为该功能最初以特定于JavaScript的方式添加,这是一个疏忽。 CSS横幅和页脚必须与JavaScript横幅和页脚分开,以避免将JavaScript语法注入CSS文件。

以前的"解决扩展名和#34;设置包含.mjs和.cjs,但这不再是这种情况。这不是一个良好的默认,因为它没有匹配节点'行为,可以打破一些包。您现在必须明确地指定这些扩展或配置"解决扩展名和#34;让自己设置。

如果您不通过--log-locl =警告,则可以禁用摘要。它可以通过设置Loglevel:'信息'我将尝试这样做,因为我相信它会改善UX。当他们第一次尝试它时,人们在eSbuild中有这个问题,在这种情况下,他们认为它必须被打破,只要稍后发现它实际上是罚款。虽然这很有趣,但它似乎是一个很好的迹象表明UX可以得到改善。所以我要尝试自动打印摘要,看看它的方式。请注意,如果增量构建处于活动状态(这包括手表和服务模式),则不会打印摘要。

此参数已重命名,因为它现在适用于警告和错误,而不仅仅是错误。以前设置错误限制没有对打印的警告数量不适用于打印的警告数量,有时可能导致Windows命令提示符有问题的卓越警告,这对打印至非常慢的滚动滚动并具有非常有限的滚动。现在日志限制适用于包括错误和警告的日志消息总数,因此不会打印任何消息数。日志通常会立即打印日志消息,但现在在接近限制时将故意阻止警告,以便在构建过程中为未来可能的未来错误进行空间。因此,如果构建失败,您应该保证查看错误消息(即警告可以' t上整个日志限制,然后防止打印错误)。

此选项现已始终启用且无法禁用,因此可以从API中删除它。现有的API参数不再做任何事情,以便这种删除没有影响所生成的输出。

这些选项是与第三件事的CLI实验的一部分。观看模式不再使用旋转器,因为它让人们希望能够与其他工具交错eSBuild' STDERR管道并通过旋转器动画绊倒。这些选项不再做任何事情并且已被删除。