【问题标题】:Creating an npm module that can store a shared instance创建一个可以存储共享实例的 npm 模块
【发布时间】:2021-01-04 20:36:03
【问题描述】:

我正在寻找可以使用一组键初始化一次然后在整个项目中重复使用的 npm 库

这是我希望如何使用它的示例

在根组件或页面中

import lib from "lib"

const libInstance = lib({someKey : "123"})

在未来调用的另一个组件中...

import lib from "lib"

const libInstance = lib()


const aFunction = () => {
   libInstance.doSomethingUseful()
}


我看到了很多很好的例子,其中 npm 库函数用于执行不相关的任务(例如加/减),但不幸的是没有多少可以帮助我。

【问题讨论】:

  • 你的问题是“如何构建一个可以跨文件保留信息的东西”?
  • 这里的目标是在没有参数的情况下调用lib() 只返回之前创建的lib() 实例吗?可以像将单例保存到该文件中的变量一样简单。
  • @tadman 现在看看单例,我认为它会起作用。非常感谢!
  • 如果您确实提出了可行的解决方案,请将其添加为后代的自我答案并与他人分享。
  • 是的,我一定会的!

标签: javascript node.js reactjs typescript npm


【解决方案1】:

经过一段时间的研究,我得出了这个解决方案

let config: Config = {
key: null,
}

const Core = {
  config: () => {
    return config
  },
  initialize : (_config : Config) => {
    
      config = _config;
  },
}

export default Core

使用core.Config() 返回密钥,我可以在其他对等依赖库中使用它。

【讨论】:

    【解决方案2】:

    为什么不采用更常见的方法并拥有一个您的包引用的特定文件,类似于 babel、jest、webpack、eslint、prettier 等?

    // node_modules/yash-lib
    const config = require('../../.yashrc')
    const lib = initLib(config)
    module.exports = lib
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-25
      • 2022-11-11
      • 1970-01-01
      • 2023-02-26
      • 2012-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多