我正在尝试在服务器端(Apache Sling )集成 r.js 优化器并面临一个问题:解析模块时,它总是在输出目录(dir
)下查找它们,而不是从源目录(baseUrl
或appDir
)中查找它们,不t 找到它们,因此失败。
/project/build.js
({
name: "modules/main",
dir: "/target",
baseUrl: "/sources"
})
如果您想知道,根路径/
位于服务器的 JCR 存储库中,而不是文件系统。我还稍微简化了这个例子(希望没有隐瞒问题)。
它将正确解析并读取主文件:
/sources/modules/main.js
require(["modules/foo"]);
但是,当它现在尝试解析时modules/foo
,它会尝试从中读取它,/target/modules/foo.js
而不是/sources/modules/foo.js
像我期望的那样,它不存在并且整个 r.js 执行失败并停止。
我尝试使用appDir
和各种组合,但问题总是一样的。我相当确定它与我的集成代码无关......来自文档和谷歌搜索的AFAIU,它应该在构建优化文件之前将它们复制到目标,或者只是自动从源目录中获取它们。
- 我应该
/target
在运行 r.js 之前将所有原始源文件复制给自己吗? - 也许问题在于它
baseUrl=/overlay
与内部的 build.js 不同/project
? - 也许 r.js 还会查看 r.js 进程的当前工作目录(在我的情况下到目前为止尚未定义)?
- 输出目录 (
dir
) 可以在外面吗appDir
?baseUrl