【问题标题】:How to publish an Vue.js NPM package with a Vuex module?如何发布带有 Vuex 模块的 Vue.js NPM 包?
【发布时间】:2017-12-29 20:55:58
【问题描述】:

我正在开发一些想要放入 NPM 包中的 Vue 组件。我面临的问题是我不知道如何发布依赖于 Vuex 模块的组件。

我已经将这个组件库所需的所有代码整齐地放在一个单独的 Vuex 模块中,但是当有人导入我的包时,我如何注册我的模块?

我想一个好的开始是创建一个插件,但我仍然需要检查 Vuex 实例并以某种方式注册我的模块。

我看过很多关于如何发布 Vue 组件的教程,但没有看到更复杂的教程。

有什么建议吗?

【问题讨论】:

    标签: vue.js vuejs2 vue-component vuex


    【解决方案1】:

    对于任何试图解决这个问题的人来说,这也是一个有用的参考:

    https://forum.vuejs.org/t/how-to-create-an-npm-package-of-a-vue-js-project-which-uses-vuex/14706/2

    这里要注意的一个关键点是:

    store.registerModule('desiredModuleName', yourModule)
    

    它在 API 中有点隐藏,但是只要用户通过他们的商店,这允许您注册您的 Vuex 模块。

    https://vuex.vuejs.org/en/modules.html#dynamic-module-registration

    【讨论】:

      【解决方案2】:

      您应该能够只要求用户将您的 vuex 模块(将其作为您的包公共 api 的一部分公开)添加到您的模块中。也许这也可以作为安装功能的一部分来完成(如果您使用插件方法)。

      【讨论】:

      • 是的,但如果可能的话,我希望能自动执行此操作。我想这是真正的问题。如何自动化这个。使用插件,您可以连接组件,因为我们有一个 Vue.component 挂钩来注册组件,但 Vuex 模块并非如此。
      • 您必须要求用户通过商店...我看不出有什么办法。也就是说,这是 redux 世界的常见做法:例如,请参阅 redux-form。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-09
      • 2017-06-25
      • 2021-05-26
      • 1970-01-01
      • 2021-07-20
      • 1970-01-01
      相关资源
      最近更新 更多