将Webpack UMD转换为Native ES模块

Sha*_*ole 10 javascript webpack babeljs

我正在尝试严格使用原生ES模块而不会自行编写代码,但有时我会发现第三方库与Webpack和babel一起打包为UMD,这似乎是目前最常见的格式.

这不是很好的导入

import { mat4 } from 'https://cdnjs.cloudflare.com/ajax/libs/gl-matrix/2.4.0/gl-matrix.js'
Run Code Online (Sandbox Code Playgroud)

SyntaxError中的结果:请求的模块不提供名为"mat4"的导出

我不认为UMD应该被称为普遍的.

当然我可以直接导入src然后我必须采取他们可能有的任何babel配置.我试图避免转换我的任何代码,我只想转换所有UMD node_modules以在我的代码中使用.

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

我想从UMD转换为ES.通过这种方式,我可以相信图书馆已经标准化了任何非标准版本,我可以正常导入它.我在网上搜索过但我没有找到任何东西.我尝试使用commonjs es模块插件,但它不起作用,因为导出声明不在顶层.

有没有人知道是否有插件可以做到这一点,或者任何人都可以提供一些关于他们如何处理这种情况的想法?

Sha*_*ole 3

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

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

  • 您能详细说明一下您是如何做到的吗? (2认同)