我正在尝试在服务器端集成r.js优化器(Apache Sling)并面临一个问题:在解析模块时,它总是在输出目录(dir)下查找它们,而不是在源目录(baseUrl或appDir)中查找它们.找到它们然后失败了.
({
name: "modules/main",
dir: "/target",
baseUrl: "/sources"
})
Run Code Online (Sandbox Code Playgroud)
如果您想知道,根路径/位于服务器的JCR存储库内,而不是文件系统.我也简化了一些例子(希望没有隐瞒问题).
它将正确解析和读取主文件:
require(["modules/foo"]);
Run Code Online (Sandbox Code Playgroud)
但是,当它现在尝试解决时modules/foo,它会尝试从而/target/modules/foo.js不是/sources/modules/foo.js像我预期的那样读取它,这不存在并且整个r.js执行失败并停止.
我尝试过使用appDir各种组合,但问题总是一样的.我很确定它与我的集成代码无关......来自文档和Google搜索的AFAIU,它应该在构建优化文件之前将它们复制到目标,或者只是自动从源目录中选择它们.
/target在运行r.js之前,我应该将所有原始源文件复制到自己吗?baseUrl=/overlay于内部的build.js不同/project?dir)住在外面appDir还是baseUrl?回答自己:我让它使用单个输出文件方法out而不是appDiror dir:
({
name: "modules/main",
baseUrl: "/sources"
out: "/target/out.js",
})
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它从源中读取所有模块并创建一个模块,/target/out-temp.js然后在完成后移动到该模块/target/out.js。
到目前为止,这似乎适合我的需求。
| 归档时间: |
|
| 查看次数: |
3734 次 |
| 最近记录: |