我正在尝试使用 r.js 优化器将我的所有依赖项构建到一个文件中。这是我的文件结构:
app
bin
src
css
main.css
js
libs
raphael-2.1.0
eve.js
raphael.amd.js
raphael.core.js
raphael.svg.js
raphael.vml.js
jquery-1.8.0.js
require-2.0.5.js
main.js
build.js
index.html
r.js
下面是 build.js 的内容:
({
baseURL: 'js',
dir: '../bin',
paths: {
'jquery': 'libs/jquery-1.8.0',
'raphael': 'libs/raphael-2.1.0/raphael.amd'
},
name: 'main',
removeCombined: true
})
该'libs/raphael-2.1.0/raphael.amd'
依赖项将所有其他内容加载到 raphael-2.1.0 目录中。如果我访问 app.local/src,该应用程序将按预期工作,它在运行时通过 require 在我的 index.html 文件中使用单个脚本标记加载模块,如下所示:
<script src="js/libs/require-2.0.5.js" data-main="js/main.js" type="text/javascript" charset="utf-8"></script>
但是,如果我尝试node r.js -o src/build.js
从应用程序运行命令,则会收到如下错误:
Error: ERROR: module path does not exist: /app/src/main.js for module named: main. Path is relative to: /app
at /app/r.js:14215:31
...所有内容都“按原样”复制到 bin 中。如果我添加'main': 'js/main'
到路径对象,那么 r.js 找不到 jquery 和 raphael,如果我添加js/
到 jquery 和 raphael 路径,那么 libs/raphael-2.1.0/rapheal.amd 的依赖声明是错误的。如果我更新这些,那么一切都会按预期构建,但现在 app.local/src/index.html 上的应用程序已损坏。另外,我认为这就是在构建文件中具有 baseURL 属性的意义,不是吗?在我看来,baseURL 被忽略了。我究竟做错了什么?