如何发布修改现有插件的vue js插件

时间:2017-09-11 22:12:02

标签: vuejs2 vuetify.js

我正在尝试创建一个使用来自另一个Vuejs插件(Vuetify)的组件的插件。基本上,我有一些常见的组件,我想与我们公司分享多个应用程序。

我认为这只是一个问题:

  1. 为共享组件创建github存储库
  2. 创作插件
  3. 通过npm install
  4. 引用消费应用中的回购

    以下是该插件的要点:

    // src/index.js <-- package.json/main is set to "src"
    import MyComponent from "./MyComponent.vue";
    import * as api from "./api";
    
    export default function install(Vue) {
        Vue.component("myComponent", MyComponent );
        Vue.prototype.$myApi = api;
    }
    

    目前,我所看到的行为是:

    不可

    • 正在执行插件install功能
    • 附加到Vue.prototype的api的功能在应用程序组件中可用
    • my-component可在应用中使用并呈现标记

    BAD

      {li> $myApi和Vuetify组件在my-component 的应用程序实例中

    如果我将相同的文件复制到应用程序并更改我的导入,则所有文件都按预期工作。所以,我现在想知道我是否遗漏了一些关于通过外部模块共享代码的事情。

    我已尝试使用相同的问题替代这些替代方案:

    • 使用npm link将插件模块链接到应用
    • 手动,使用mklink(Windows sym链接)将插件模块链接到app文件夹中的node_modules
    • 使用对插件模块的长相对路径引用:从&#34; ../../../ my-plugin&#34;
    • 导入MyPlugin

1 个答案:

答案 0 :(得分:0)

我已经暂时解决了这个问题,但是对于任何想知道的人来说,问题在于使用单个文件组件和webpack而不是在外部模块中编译它们。

我有两个选择:

  1. 不要使用单个文件组件。即:使用.js代替.vue。我已经看到像Vuetify.js这样的一些库采用这种方法
  2. 编译库模块中的.vue文件,并将它们包含在源代码中,例如./dist文件夹。