注意:您可以通過運行npm install hotplate
來精確複製此內容。 我寫烤盤,這是一個簡單的模塊基於插件的:當您的軟件包具有相關性時,在npm中使用bundleDependencies
https://github.com/mercmobily/hotplate
這基本上是一個小模塊,然後一大堆的「插件」模塊可獲取加載。請注意,由於這個巨大的文件系統重新洗牌爐子目前沒有功能。現在
...基本結構是:
hotplate
|
- hotplate.js
- package.json
- node_modules
|
- hotCoreClientFiles
- hotCorePage
- hotCoreSharedCode
- hotDojoAuth
...
竈具然後加載相關的「插件」(取決於用戶想要做什麼)等,這些插件是與主模塊捆綁。 現在...我有很多的悲傷計算出如何自動加載插件的依賴關係。 這是什麼的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
└─┬ [email protected]
├── [email protected]
├─┬ [email protected]
[...]
├── [email protected]
├── [email protected]
├── [email protected]
[...]
├── [email protected]
├─┬ [email protected]
│ ├── UNMET DEPENDENCY allhttperrors *
│ ├── UNMET DEPENDENCY bcrypt *
│ ├── UNMET DEPENDENCY hat *
│ ├── UNMET DEPENDENCY mongowrapper *
│ └── UNMET DEPENDENCY simpleschema-mongo *
├─┬ [email protected]
│ ├── UNMET DEPENDENCY allhttperrors *
│ └── UNMET DEPENDENCY mongowrapper *
└─┬ [email protected]
├── UNMET DEPENDENCY jsonreststores-mongo *
├── UNMET DEPENDENCY mongowrapper *
└── UNMET DEPENDENCY simpledeclare *
這不好!如果您然後運行npm update
......那麼發生一些災難。 模塊mongowrapper
取決於mongodb
,它被下載並編譯N次。
我真的不希望設置mongodb
,mongowrapper
,simpledeclare
等爲依賴關係爲主要hotplate
模塊,因爲......好吧,因爲它們不是。電爐只是一個裝載機。如果更高級別的軟件包已經需要simpledeclare
,那麼OK就不需要再次安裝。否則,我希望它留在子模塊的node_modules
目錄中。
現在,我必須做一些非常錯誤的事情。我只是不知道它是什麼...
謝謝!
Merc。
...?呃?你能更清楚地瞭解這一點嗎?如果我將它們從bundledDependencies中取出,事情將不起作用,因爲當我嘗試npm發佈它們時,npm將忽略它們。所以,他們需要在那裏列出。不知道你的意思究竟是什麼...... – Merc 2013-03-04 14:07:36
我的不好,因爲你在基於插件的架構時遇到問題,我以爲你的意思是新的'peerDependencies'。 – Floby 2013-03-04 19:22:06