首页 > 解决方案 > 如何使用仅包装我的 JavaScript 代码的 npm 包?

问题描述

我们目前有一个 npm 包供客户在他们基于 ES6 的项目(如 React)中使用。这个包的主索引文件具有以下形状:

export function ourFunction() {

}

客户端通过以下方式导入此函数:

import { ourFunction } from "our-package";

我们希望将我们的代码托管在一个专用端点上,并让 npm 包简单地充当获取该代码的包装器。我们最困惑的是我们如何仍然可以保持上面的导入行相同,以便使用该包的客户端没有明显的差异。

标签: javascriptreactjsnpmcommonjs

解决方案


如果我理解正确:

如果代码将在专用端点上,用户将需要下载它(与他们之前安装的 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');

推荐阅读