角度应用程序中使用 require 时,我在设置 r.js 时遇到问题。我是使用 AMD 的新手,所以这可能是一个简单的解决方案。不幸的是,目录结构必须保持原样,因为需要能够使用相同的默认组件添加更多客户端。
我得到的错误是它找不到控制器依赖项。从客户端#1/Directory_For_Prod_Packs/Angular/Default/_Controllers/.js引用它们是triyng。 所以从本质上讲,它是在构建文件所在的末尾添加整个绝对路径,或者至少在我看来是这样。 任何帮助都会很棒。从本质上讲,我只想拥有我所有指令、服务、控制器等的包。或者控制器包.js然后是指令.js等等。
这是我的目录结构。
- 角
- 自由
- 棱角分明.js
- 违约
- 控制器
- _Controllers.js//控制器包
- .js//所有单独的控制器
- 指令
- _Directives.js
- 。.js
- 控制器
- 客户#1
- main.js//require config
- 应用.js
- build.js//r.js build config
- 自由
这是我的构建.js用于 r.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);
}
);
我不确定到底是什么问题(目录结构和../..
似乎不匹配,尽管我可能弄错了(,但请尝试将build.js
属性设置为:
-
baseUrl
:包含脚本的文件夹,相对于加载脚本的 HTML 页面,而不是相对于build.js
-
dir
:相对于build.js
构建输出文件夹 -
appDir
:应用程序文件夹。它可能包含一个引导应用程序脚本的index.html
。baseUrl
配置属性指向的文件夹必须在此下!这是相对于build.js
.
格外小心baseUrl
,那些../..
看起来很可疑。它是相对于index.html
,而不是build.js
。