【问题标题】:How can I use an npm package that just wraps my JavaScript code?如何使用仅包装我的 JavaScript 代码的 npm 包?
【发布时间】:2021-06-02 17:26:43
【问题描述】:

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

export function ourFunction() {

}

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

import { ourFunction } from "our-package";

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

【问题讨论】:

  • 这不是 npm 和包的工作方式.....
  • 我们很困惑,因为github.com/stripe/stripe-js 这样做了。我们无法理解他们实际上是如何导入代码的。

标签: javascript reactjs npm commonjs


【解决方案1】:

如果我理解正确的话:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-07
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    相关资源
    最近更新 更多