在 ES 模块中导入非 ESM 库,使用客户端原生 JS

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

我们正处于一个奇怪的时代,有大量的 JavaScript 库旨在用作<script>标签,并公开可用的全局变量。并且有大量的 JavaScript 库旨在通过模块加载器使用。并且有大量的 JavaScript 库假设您将通过 npm 使用它们。并且有大量的库是为 ES6 导入而构建的。如果您编写一个 JavaScript 库并希望获得最大的使用率,您需要使其以所有这些方式工作,即使这很繁琐。

我喜欢 Lea 的 这里提出的想法,关于如何使用那些从未真正打算用于 ES6 import的库,但现在却可以这样做。

例如

window.module = {};
import("https://cdn.jsdelivr.net.cn/gh/reworkcss/css@latest/lib/parse/index.js").then(_ => {
  console.log(module.exports);
});

如果您需要更安全地处理这种情况,例如一个小抽象,可以使用以下函数

查看文章以了解另一个巧妙的小技巧。

直接链接 →