我正在尝试严格使用本机ES模块,而不会转发我自己的代码,但有时候我会发现第三方库与Webpack打包,而babel作为UMD打包,这似乎是目前最常见的格式。
这不能很好地导入
import { mat4 } from 'https://cdnjs.cloudflare.com/ajax/libs/gl-matrix/2.4.0/gl-matrix.js'
结果
SyntaxError:请求的模块不提供名为“mat4”的导出
我认为UMD不应该被称为普遍的。
当然我可以直接导入src但是我必须接受他们可能拥有的任何babel配置。我试图避免转换我的任何代码,我只是想在我的代码中转换所有UMD node_modules
。
我正在寻找的是与此相反的:https://www.npmjs.com/package/babel-plugin-transform-es2015-modules-umd
我想从UMD转换为ES。通过这种方式,我可以相信图书馆已经标准化了任何非标准版本,我可以正常导入它。我在网上搜索过但我没有找到任何东西。我尝试使用commonjs es模块插件,但它不起作用,因为导出声明不在顶层。
有没有人知道是否有插件可以执行此操作,还是有人可以就如何处理此类情况提供一些想法?
答案 0 :(得分:3)
在编写ESM代码时,经过两年与第三方库打交道的努力,我认为snowpack.dev的人们有一个非常好的解决方案。
因此,我将把它留给遇到此问题的其他人作为答案。