【发布时间】:2017-11-22 23:03:49
【问题描述】:
我有一个AMD项目,基本上有以下结构:
samples/sample1/main
________________
* sharedpackage1/subfolder1/module1
* sharedpackage1/subfolder2/module1
* ./localmodule1
* ./localmodule2
* ./subfolder1/localmodule1
samples/sample2/main
________________
* sharedpackage1/subfolder2/module2
* sharedpackage2/subfolder1/subfolder1/module1
* ./localmodule1
* ./localmodule2
* ./localmodule3
* ./subfolder1/localmodule1
* ./subfolder1/localmodule2
* ./subfolder2/localmodule1
samples/sample3/main
________________
* sharedpackage2/subfolder2/subfolder1/module1
* sharedpackage2/subfolder3/module1
* ./localmodule1
* ./localmodule2
* ./localmodule3
* ./localmodule4
* ./localmodule5
...
我想使用r.js 来打包我的项目并最终得到...
- 单个
shared.js文件用于所有示例,其中包含sharedpackage1和sharedpackage2中的所有模块 - 及其依赖项 - 至少在一个示例中使用 - 每个样本一个
main.js文件,其中包含特定于该样本的所有模块(“本地”模块)
请注意...
-
sharedpackage1和sharedpackage2是可以包含数百个不同的相互依赖模块的库 -
sharedpackage1和sharedpackage2都没有将包中的所有其他模块作为依赖项的“根”(或“主”)模块 -
sharedpackage1中的模块可以将来自sharedpackage2的模块作为依赖项 -
sharedpackage2中的模块只有sharedpackage2中的其他模块作为依赖项 -
sharedpackage1或sharedpackage2中未在任何示例中使用的模块不应包含在shared.js中 - 特定于示例的配置应尽可能少且通用,以便在构建时使用 Node 脚本轻松生成
现在,只要每个新样本都有一个 main.js 文件作为“根”模块,那么在没有任何额外配置的情况下让我的构建脚本自动获取每个新样本应该不会太难。所以我会处理的。
我似乎无法从我找到的任何文档中弄清楚,如何创建一个单独的 shared.js 文件,该文件仅包含 sharedpackage1 和 sharedpackage2 中使用的那些模块未定义 shared 模块的示例,我手动列出每个示例的每个 main.js 的所有单独依赖项(这不适合我的用例)。
r.js 可以做到这一点吗?如果是,我该如何实现?
【问题讨论】:
标签: javascript node.js requirejs amd r.js