问题描述
我们目前有一个 npm 包供客户在他们基于 ES6 的项目(如 React)中使用。这个包的主索引文件的形状如下:
export function ourFunction() {
}
客户端通过以下方式导入这个函数:
import { ourFunction } from "our-package";
我们希望将我们的代码托管在专用端点上,并让 npm 包仅充当获取该代码的包装器。我们最困惑的是我们如何仍然保持上面的导入行相同,以便使用该包的客户端没有明显的差异。
解决方法
如果我理解正确:
如果代码将在专用端点上,用户将需要下载它(与他们之前安装的 npm 包不同)。 为此,请使您的函数异步并下载函数内的代码:
export async function ourFunction() {
fetch(path/to/our/code)
.then(code => ...)
.catch(err => ...)
用户可以使用下一种方式:
import { ourFunction } from "our-package";
ourFunction().then(data => ...)
来自 Stripe 的类似示例
import {loadStripe} from '@stripe/stripe-js';
const stripe = await loadStripe('pk_test_TYooMQauvdEDq54NiTphI7jx');