在我的角度应用程序中使用require时,我遇到了设置r.js的问题。我是使用AMD的新手,所以它可能很容易解决。不幸的是,目录结构必须保持原样,因为需要能够使用相同的默认组件添加更多客户端。
我得到的错误是它无法找到控制器依赖项。从Client#1 / Directory_For_Prod_Packs / Angular / Default / _Controllers / .js引用它们是三分法。所以基本上它是在构建文件所在的位置末尾添加整个绝对路径,或者至少在我看来是这样。任何帮助都会很棒。基本上我只想拥有一包所有指令,服务,控制器等。或者包controller.js然后是directives.js等等。
这是我的目录结构。
这是我对r.js的build.js
({
baseUrl: '../../lib/Angular',
dir: "../../Client#1/ProductionBuild",
paths: {
"controllers": '../../Default/_Controllers/_Controllers',
},
modules: [
{
name: "controllers"
}
]
})
最后这是我的_Controller.js
define(['angular',
'../../Default/_Controllers/controller1.js',
'../../Default/_Controllers/controller2.js'],
function(angular) {
'use strict';
var dependencies = ['controller1',
'controller2',];
angular.module('app.controllers', dependencies);
}
);
答案 0 :(得分:0)
我不确定究竟是什么问题(目录结构和../..
似乎不匹配,但我可能会弄错),但尝试将build.js
属性设置为:
baseUrl
:包含脚本的文件夹相对于加载它们的HTML页面,不相对于build.js
dir
:构建输出文件夹相对于build.js
appDir
:应用程序文件夹。它可能包含一个index.html
,用于引导应用程序的脚本。 baseUrl
配置属性指向的文件夹必须在此下面!这是相对于build.js
。要特别注意baseUrl
,那些../..
看起来很可疑。它与index.html
相关,而不是build.js
。