0

angular アプリケーションで require を使用するときに r.js の設定に問題があります。私はAMDを使用するのは初めてなので、簡単に修正できるかもしれません。残念ながら、同じデフォルト コンポーネントを使用してさらにクライアントを追加する必要があるため、ディレクトリ構造はそのままにしておく必要があります。

私が得るエラーは、コントローラーの依存関係が見つからないというものです。Client#1/Directory_For_Prod_Packs/Angular/Default/_Controllers/.js から参照しようとしています。したがって、基本的には、ビルドファイルがある場所の最後に絶対パス全体を追加するか、少なくともそれが私にはどのように見えるかです。どんな助けでも素晴らしいでしょう。基本的に、すべてのディレクティブ、サービス、コントローラーなどを 1 パックにするか、controllers.js のパックと、directives.js などのパックを用意したいだけです。

これが私のディレクトリ構造です。

  • 角度
    • リブ
      • angular.js
    • デフォルト
      • コントローラー
        • _Controllers.js //コントローラーのパック
        • .js //すべての個別のコントローラー
      • ディレクティブ
        • _Directives.js
        • .js
    • クライアント#1
      • main.js //設定が必要
      • app.js
      • build.js // r.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);
    }
);
4

1 に答える 1

0

何が問題なのか正確にはわかりませんが (../..間違っているかもしれませんが、ディレクトリ構造とが一致していないようです)、build.jsプロパティを次のように設定してみてください。

  • baseUrl: スクリプトを含むフォルダー。スクリプトをロードする HTML ページに対して相対的であり、相対的ではありませんbuild.js
  • dir: 出力フォルダーをビルドしますbuild.js
  • appDir:アプリケーションフォルダ。index.htmlアプリケーションのスクリプトをブートストラップするが含まれている可能性があります。構成プロパティが指すフォルダーは、baseUrlこの下にある必要があります。そして、これはに対して相対的build.jsです。

baseUrlに特に注意して../..ください。疑わしいようです。index.htmlではなくに相対的build.jsです。

于 2013-10-08T12:02:10.190 に答える