2017-03-25 7 views
0

プラグインをインストールしたりアンインストールしたりできます。私は私のアプリのためにそれをしたいと思うし、npm/githubを使ってそれをやりたい。カスタムプラグインマネージャとしてnpmを使用していますか?

おそらく、あなたのパッケージは、myapp-で始まり、私のアプリのプラグインとみなされることが必要になるでしょう。これに基づいてnpmを検索するにはどうしたらいいですか?node_modulesではなく、自分が望むフォルダにパッケージをインストール/更新することができ、人がnpmをインストールしていなくても動作するはずです(http APIを使用していますか?私のアプリのための

プラグインは私がする必要があるすべては、そのフォルダ

+0

これは良い考えですが、Stack Overflowはそれを提示する間違ったフォーラムです。 – tadman

+0

十分に公正で、私が知っている唯一のフォーラムです。私は最終的に自分自身でこの質問に答えるでしょう –

+0

可能性として、そこにかなり狭い焦点があります。より自由な議論のための[チャットルーム](http://chat.stackoverflow.com)があります。 – tadman

答えて

0

https://api-docs.npms.io/ NPMパッケージを検索するためのHTTP APIを持っているに彼らのGitのソースをダウンロードしている、plugins/plugin-nameフォルダに入ります。このように使用することができます

:myappの

のためのすべてのプラグインを取得するために https://api.npms.io/v2/search?q=keywords:myapp

実際/ダウンロードしたフォルダにNPMパッケージをインストールするには、私は私のコード

でそれを行うことができます download-npm-package呼ばNPMパッケージを見つけました
1

私は同様の問題を解決するプロジェクトを作成しました。 live-plugin-managerを参照してください。

実行時にnpmからプラグインをインストール、アンインストール、ロードすることができます。私は、実行時、負荷時にmomentパッケージをインストールして実行上記のコードで

import {PluginManager} from "live-plugin-manager"; 
import * as path from "path"; 

const manager = new PluginManager({ 
    pluginsPath: path.join(__dirname, "plugins") 
}); 

async function run() { 
    await manager.installFromNpm("moment"); 

    const moment = manager.require("moment"); 
    console.log(moment().format()); 

    await manager.uninstall("moment"); 
} 

run(); 

。ここではtypescriptを使用していますが、同じものはプレーンなjavascriptで記述することができます。

プラグインは、指定されていない場合、PluginManagerコンストラクタまたはpluginsディレクトリに指定されたディレクトリ内にインストールされます。

関連する問題