我正在尝试严格使用 native ES 模块而不转译我自己的代码,但我经常会找到一个第三方库,它与 Webpack 和 babel 打包为 UMD,这似乎是当今最常见的格式。
这不能很好地导入
import { mat4 } from 'https://cdnjs.cloudflare.com/ajax/libs/gl-matrix/2.4.0/gl-matrix.js'
结果是
SyntaxError: The requested module does not provide an export named 'mat4'
我不认为UMD真的应该被称为通用。
当然我可以直接导入 src,但是我必须接受他们可能拥有的任何 babel 配置。我试图避免转译我的任何代码,我只想转译所有 UMD
node_modules
在我的代码中使用。我正在寻找的是与此相反的:https://www.npmjs.com/package/babel-plugin-transform-es2015-modules-umd
我想从 UMD 转换为 ES。这样我就可以相信库已经转译掉了任何非标准的东西,我可以照常导入它。我在网上搜索过,但没有找到任何东西。我尝试了 commonjs to es modules 插件,但它不起作用,因为导出声明不在顶层。
有谁知道是否有一个插件可以做到这一点,或者任何人都可以提供一些关于他们如何处理这种情况的想法?
最佳答案
在编写 ESM 代码时与第三方库打交道 2 年之后,我认为 snowpack.dev 的人们已经结束了。有一个非常好的解决方案。
因此,我将把这个作为其他任何遇到此问题的人的答案。
关于javascript - 将 Webpack UMD 转换为原生 ES 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48469241/