将 r.js 与 Angular 和 Required 一起使用


在我的

角度应用程序中使用 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.htmlbaseUrl配置属性指向的文件夹必须在此下!这是相对于build.js.

格外小心baseUrl,那些../..看起来很可疑。它是相对于index.html,而不是build.js

相关内容

最新更新