javascript - 将 Webpack UMD 转换为原生 ES 模块

标签 javascript webpack babeljs

我正在尝试严格使用 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/

相关文章:

javascript - 仅在调试时 undefined variable

javascript - 我怎样才能将 'vue.js'添加到webpack的bundle.js中

angular - 在升级到 Angular 9 期间,Typescript 编译中缺少 main.ts 和 polyfills.ts

javascript - 我用babel编译js的时候没有定义Proxy

javascript - 如果未登录,则限制对 js 文件的访问

php - 根据标签随机播放 YouTube 视频

javascript - 释放大数组内存的正确方法是什么

javascript - 带有 JIT 的 Tailwind CSS 不适用于 webpack

babeljs - 在 babel-standalone 中禁用 "use strict"

javascript - 如何在使用路径别名导入的文件上使用 Babel?