我试图严格使用 native ES模块而不使用自己的代码来工作,但通常我会发现第三方库与Webpack和babel打包为UMD,这似乎是当今最常见的格式。

这不太好导入

import { mat4 } from 'https://cdnjs.cloudflare.com/ajax/libs/gl-matrix/2.4.0/gl-matrix.js'

结果是



我不认为UMD应该真正被称为通用。

当然,我可以直接导入src,但是随后我必须进行他们可能具有的任何babel配置。我试图避免转译我的任何代码,而只想转译所有UMD node_modules以在我的代码中使用。

我正在寻找的与此相反:https://www.npmjs.com/package/babel-plugin-transform-es2015-modules-umd

我想从UMD转换为ES。这样,我可以相信该库已经转载了所有非标准的东西,并且可以像平常一样导入它。我已经在网上搜索了,但没有找到任何东西。我尝试了commonjs到es模块的插件,但是它没有用,因为导出声明不在顶层。

有谁知道是否有一个插件可以做到这一点,或者有人可以提供一些有关如何处理这种情况的想法吗?

最佳答案

在编写ESM代码时,经过两年与第三方库打交道的努力,我认为snowpack.dev的人们有一个非常不错的解决方案。

因此,我将把它留给遇到此问题的其他人作为答案。

关于javascript - 将Webpack UMD转换为 native ES模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48469241/

10-10 13:07