注: を実行すると、これを正確に再現できますnpm install hotplate
。プラグインベースのシンプルなモジュールであるホットプレートを書いています。
https://github.com/mercmobily/hotplate
これは基本的に小さなモジュールであり、ロードされる「プラグイン」モジュールがたくさんあります。この巨大なファイル システムのため、再シャッフル ホットプレートは現在機能していないことに注意してください。
今...基本的に構造は次のとおりです。
hotplate
|
- hotplate.js
- package.json
- node_modules
|
- hotCoreClientFiles
- hotCorePage
- hotCoreSharedCode
- hotDojoAuth
...
Hotplate は、関連する「プラグイン」 (ユーザーが何をしたいかによって異なります) などを読み込みます。これらのプラグインは、メイン モジュールにバンドルされます。今...プラグインの依存関係を自動的にロードする方法を考え出すのに多くの悲しみがあります。package.json は次のようになります。
{
"name": "hotplate",
"description": "Hotplate SaaS development framework",
"version": "0.0.13",
"private": false,
"dependencies": {
"express": "3.x",
"async": "*",
"hotCoreClientFiles": "*",
[...]
"hotDojoSubmit": "*",
"hotDojoWidgetHooks": "*",
"hotDojoWidgets": "*",
"hotMongoAuth": "*",
"hotMongoCometMessages": "*",
"hotMongoLogger": "*"
},
"bundleDependencies": [
"hotCoreClientFiles",
[...]
"hotDojoSubmit",
"hotDojoWidgetHooks",
"hotDojoWidgets",
"hotMongoAuth",
"hotMongoCometMessages",
"hotMongoLogger"
],
}
基本的に、一部のサブモジュールには依存関係もあります (独自の package.json ファイルで概説されています)。インストール後の結果は次のとおりです。
/home/chiara
└─┬ hotplate@0.0.12
├── async@0.2.6
├─┬ express@3.1.0
[...]
├── hotCoreClientFiles@0.0.4
├── hotCoreCommonValidators@0.0.4
├── hotCoreError@0.0.4
[...]
├── hotDojoWidgets@0.0.4
├─┬ hotMongoAuth@0.0.4
│ ├── UNMET DEPENDENCY allhttperrors *
│ ├── UNMET DEPENDENCY bcrypt *
│ ├── UNMET DEPENDENCY hat *
│ ├── UNMET DEPENDENCY mongowrapper *
│ └── UNMET DEPENDENCY simpleschema-mongo *
├─┬ hotMongoCometMessages@0.0.4
│ ├── UNMET DEPENDENCY allhttperrors *
│ └── UNMET DEPENDENCY mongowrapper *
└─┬ hotMongoLogger@0.0.4
├── UNMET DEPENDENCY jsonreststores-mongo *
├── UNMET DEPENDENCY mongowrapper *
└── UNMET DEPENDENCY simpledeclare *
これは良くない!その後、実行するnpm update
と...まあ、ちょっとした災害が発生します。モジュールは、N 回ダウンロードおよびコンパイルされる にmongowrapper
依存します。mongodb
mongodb
、などを依存関係としてメインmongowrapper
モジュールとして設定したくありません...まあ、そうではないからです。ホットプレートはローダーのみです。より高いレベルのパッケージで既に必要な場合は、再度インストールする必要はありません。それ以外の場合は、サブモジュールのディレクトリに置いておきたいと思います。simpledeclare
hotplate
simpledeclare
node_modules
今、私は何か非常に悪いことをしているに違いありません。私はそれが何であるかを理解することはできません...
ありがとうございました!
メルク。