14

どこから始めればいいのか本当にわかりません。

私はすべてのチュートリアル、記事、およびブログ投稿を調べて、dojo が機能するために行っていることを 1 つ試してみましたが、何かを機能させるためにそのような問題が発生したことはありません。ドキュメンテーションをめぐる炎上戦争や、実際に動作するスクリプトを持つ人々を見つけましたが、投稿も概説もありませんでした。SO では、これは非常に一般的な問題であることがわかりましたが、半分の時間は解決されません。

免責事項: 1.6 は忘れてください。1.6は使ったことがありません。したがって、オンラインで見つけた私のリソースの半分は無効であり、私の本も無効です。どうぞ。

質問1

この形式の使用に関する多くの投稿の違いは何ですか:

dependencies = {
    stripConsole: "all",
    action: "release",
    optimize: "shrinksafe",
    // Omitted options...
    layers: [{
        name: "dojo.js",
        customBase : true,
            dependencies: [ 
              "dojox.gauges.AnalogNeedleIndicator",
              "myApp.smartmix"]           
        }
    ],
    prefixes: [
        [ "dijit", "../dijit" ], 
        [ "dojox", "../dojox" ],
        [ "myApp", "../../../myApp" ]
    ]
};

...vs この形式:

var profile = {
    basePath: './',
    stripConsole: 'all',
    selectorEngine: 'lite',
    layers: {
        'dojo/dojo': {
            include: ['dojo/dojo', 'dojo/domReady', 'dojo/_base/declare'],
            boot: true,
            customBase: true
        },
        'dgrid/dgrid': {
            include: ["dgrid/List", "dgrid/OnDemandGrid", "dgrid/Selection", "dgrid/Keyboard", "dgrid/test/data/perf"]
        }
    }
    // static-has-features removed
};

この 2 つのオブジェクトには 2 つの非常に重要な違いがあり、layersA) 誰もが理由や合理性なしに単に「知っている」ように見えるか、または B) 人々は単に「知っている」ように見える. 新しい AMD 構造とビルド システムの書き直しに関係する 2 つの構文 (構文? 構文?) の違いについて書かれたものをまだ見つけていません。

私が見た中で最も近いのは、オブジェクト名も宣言も重要ではないということです。「グローバル」変数 (varキーワードの省略) であってもなくてもかまいません。返されるオブジェクトに必要な情報が含まれている限り、名前は関係ありません。

2 番目の形式では、「予期しない文字列」エラーが発生し、プロファイルをコピーして貼り付けても、99% の確率で失敗します。

質問2

いったい何が必要なの!? Dojo のドキュメントには、package.json と appName.profile.js ファイルが必要であると書かれていますが、私が見たすべてのチュートリアルでは、プロファイルのみが必要であり、使用されています。したがって、Dojo のメイン Web サイトにある建物に関する情報の半分は使用されていません。そう........?

Dojo サイトではsrc、ビルドにリリースを使用するように指示されています。Nabble の担当者はsvn、src バージョンが既に「ビルド」されているため、バージョンを取得する必要があると述べました。

...では、誰が最初に参加しますか?

質問 3

共有したい作業ディレクトリ構造とprofile.jsファイルを持っている人はいますか? 私はすべてを試しました。そして、ビルドを取得するために、すべてを意味します。1 つの提案は、空のプロファイル オブジェクトを使用することでした。それはうまくいきます、そしてそれは役に立ちません。

もう 1 つの提案は、Dojo ボイラープレート ビルドを使用することでした。変更によってテンプレートが壊れる場合、テンプレートは何の役にも立たないでしょうか? Tony Stark の言葉を借りれば、「すべての既知の [javascript オブジェクトのバリエーション] のすべての順列。何も機能しません」

私はすぐに信頼を失っています。何時間もの試行錯誤の末に理解できないからではなく、多くの人が同じ船に乗っているからです. 沈んでます。

最終質問

それで、私の最後のリクエストは、誰かがこのビルドシステムがどのように機能するかについていくつかの光を当てることができますか?

どのように... Dojo ビルド プロファイルを構成し、それを実行しますか... エラーなしで!? このシステムが A) 文書化され、B) 実装されており、私がそうしている間に C) 教えられているというのは正気ではありません。疲れます。

私が訪れた(多くの)サイトのいくつか:

アップデート

@xesxz と @Craig Swing に感謝します。いくつかの小さなことをした後、チャンクを離れて必要なものを提供するビルドプロファイルを取得しました!

4

2 に答える 2

7

このフォーマットの使用に関する多くの投稿の違いは何ですか...

最初の例は、Dojo1.7より前のビルドの場合です。1.7以降を使用している場合は、2番目の例が必要です。

Dojoサイトは、ビルドにsrcリリースを使用するように言っています。Nabbleの男は、srcバージョンはすでに「ビルド」されているので、svnバージョンを取得する必要があると言いました。

...では、誰が最初に参加しますか?

http://dojotoolkit.org/download/のSDKが必要です

このページでは、「ソース」というラベルが付いています。これには、すべてのビルドスクリプトを含むutilディレクトリと、ビルドされていないバージョンのdojoファイルを含む他のディレクトリが含まれます。

誰か、誰でも、共有したい作業ディレクトリ構造とprofile.jsファイルを持っていますか?

私が取り組んでいるプロジェクトは、@xesxzが投稿したものと同様の構造を持っています。しかし、使ってみましたがうまくいきboot: true, customBase: trueませんでした。以下は私のプロフィールです。(私のディレクトリ構造は少し異なるので、パスは@xesxzが投稿したものと一致しません)。

私のアプリには以下を含めます

  • dojo / dojo.js
  • myCore / core.js
  • myAppModuleX / app.js。ここで、Xはページで使用している特定のモジュールです。

core.profile.js(ビルド用)

var profile = (function(){
     var coreRequires = [
        "dojo/_base/declare",
        "dojo/_base/fx",
        "dojo/_base/lang",
        "dojo/currency",
        "dojo/fx",
        "dojo/number",
        "dojo/on",
        "dojo/query",

        "dijit/dijit",

        "myCore/ACoreWidget"
    ];

    return {
        basePath:       "./dojo-release-1.8.3-src",
        releaseDir:     "../../DEV-REL",
        action:         "release",
        cssOptimize:    "comments",
        selectorEngine: "acme",

        packages:[{
            name: "dojo",
            location: "dojo"
        },{
            name: "dijit",
            location: "dijit"
        },{
            name: "dojox",
            location: "dojox"
        },{
            name: "myCoreModule",
            location: "../myCore"
        },{
            name: "myAppModule1",
            location: "../myAppModule1"
        },{
            name: "myAppModule2",
            location: "../myAppModule2"
        }],

        layers: {
            "myCore/core": {
                include:    coreRequires
            },

            "myAppModule1/app": {
                include:    [
                    "myAppModule1/WidgetX"
                ],
                exclude: coreRequires
            },

            "myAppModule2/app": {
                include:    [
                    "myAppModule2/WidgetY"
                ],
                exclude: coreRequires
            }
        }
    };
})();

どのように...Dojoビルドプロファイルを構成し...エラーなしで実行しますか?

ノードを使用してビルドします。これは、ビルドプロファイルを含むディレクトリで実行されます。

node dojo-release-1.8.3-src/dojo/dojo.js load=build --profile core.profile.js --release --version=1.8.3

私の推奨事項は、非常に単純な単一のカスタムウィジェットを使用してビルドを完了することです。それがうまくいけば、あなたの本当のウィジェット

についてunexpected String

  • すべてのウィジェットは新しいAMD構文を使用していますか?
  • あなたはdgridを持っていますが、私はそれがとに依存していると信じていput-selectorますxStyle
于 2013-03-14T10:37:43.167 に答える