将Webpack UMD转换为Native ES模块

时间:2018-01-26 20:43:31

标签: javascript webpack babeljs

我正在尝试严格使用本机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模块插件,但它不起作用,因为导出声明不在顶层。

有没有人知道是否有插件可以执行此操作,还是有人可以就如何处理此类情况提供一些想法?

1 个答案:

答案 0 :(得分:3)

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

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