2017-09-11 11 views
0

別のVuejsプラグイン(Vuetify)のコンポーネントを利用するプラグインを作成しようとしています。基本的には、当社と複数のアプリケーション間で共有したい共通のコンポーネントがいくつかあります。 npm install 経由既存のプラグインを変更するvue jsプラグインを公開する方法

  1. 共有コンポーネント用のGitHubリポジトリを作成します
  2. 著者プラグイン
  3. リファレンスアプリケーションを消費におけるレポ:

    私はそれだけの問題だろうと思いました

    プラグインの主旨は次のとおりです。

    // 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; 
    } 
    
    現時点では

    は、私が見ている動作は次のとおりです。

    GOOD

    • install機能がVue.prototypeに添付apiから
    • の機能を実行されているプラ​​グインは、アプリのコンポーネントで利用可能です
    • my-componentは、アプリで利用でき、マークアップをレンダリングします。

    BAD

    • $myApiとVuetifyコンポーネント私はアプリに同じファイルをコピーして、私のインポートを変更する場合は、my-component

    ののアプリケーションインスタンスで利用可能なすべての作品ではありません予想通り。だから、私は外部モジュールを介してコードを共有することに関して何か不足しているのではないかと思います。でnode_modulesにプラグインモジュールをリンクするmklinkます(Windows SYMリンク)を使用し、

  4. 手動でアプリにプラグインモジュールをリンクする

    • 使用npm link

      は、私は同じ問題を持つこれらの選択肢を試してみました

答えて

0

私はFOオフこの問題を入れている「../../../my-plugin」からインポートMyPlugin:appフォルダ

  • は、プラグインモジュールに対して長いパスの参照を使用しますしかし、疑問に思う人にとっては、シングルファイルコンポーネントを使用し、外部モジュールのファイルパックをコンパイルしないことが問題です。

    私が持っている2つのオプションがあります:単一ファイルのコンポーネントを

    1. 使用しないでください。私は:.vueの代わりに.jsを使用してください。私はVuetify.jsのようないくつかのライブラリを見てきました。このアプローチを取る。
    2. をコンパイルします。ライブラリモジュール内のファイルを開き、それらを./distフォルダなどのソースに含めます。
  • 関連する問題