3

注意:您可以通过运行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......好吧,有点灾难发生了。该模块mongowrapper依赖于mongodb,它被下载并编译 N 次。

我真的不想将mongodb,mongowrapper等设置simpledeclare为主hotplate模块的依赖项,因为......好吧,因为它们不是。Hotplate 只是一个加载器。如果simpledeclare更高级别的软件包已经需要它,那么 OK 它不需要再次安装。否则,我希望它保留在子模块的node_modules目录中。

现在,我一定做错了什么。我只是无法弄清楚它是什么......

谢谢!

默克。

4

1 回答 1

-3

bundleDependencies 字段将在您的插件 package.json 中使用。不是你的主要装载机。

于 2013-03-04T10:08:53.880 回答