3

まず、私たちは Dojo を初めて使用し、自由に「新しい」方法で作業を行うことができるため、ドキュメントの 1.7 より前のセクションはほとんど無視しています。それでも、さまざまな記事、ドキュメント、サンプル スクリプトを比較すると、混乱してしまいます。

肝心なのは、Dojo のカスタム ビルドを作成してデプロイする方法についての簡単な記事が見つからないということです。最も具体的には、どの .js および .css ファイルをデプロイする必要があるかです。build の作成に関するドキュメントはたくさんありますが、デプロイに関するドキュメントは見つかりませんでした。

最終的に、すべてを単一の dojo.js にビルドすることは、モバイルでは合理的な方法であり、ビルド・ディレクトリーからその 1 つのファイルを抽出してサーバーにデプロイするだけでよいことがわかりましたが、その後、CSS 参照が欠落し、試行錯誤がそれらを解決する正しい方法ではないようです。

具体的な現在のケースは次のとおりです。

<script type="text/javascript">
        require(
                // deviceTheme to auto-detect device styles
                [   
                    "dojox/mobile",
                    "dojox/mobile/parser",
                    "dojox/mobile/deviceTheme"
                ]);
</script>

ビルドプロファイルは次のとおりです。

dependencies = {
    stripConsole: "normal",

    layers: [
        {
            name: "dojo.js",
            customBase: true,    // prevent automatic inclusion of dojo/main
            dependencies: [
                "dojox.mobile.parser",
                "dojox.mobile",
                "dojox.mobile.deviceTheme"
            ]
        }
    ],

    prefixes: [
        [ "dijit", "../dijit" ],    // example included; not clear why
        [ "dojox", "../dojox" ]
    ]
}

(スクリプトによって実行されdojo-release-1.7.2-src\dojox\mobile\build\build.batます。)

したがって、具体的な質問は次のとおりだと思います。

  1. この場合、どの CSS ファイルを展開しますか?
  2. 一般に、CSS ファイルを含め、どのファイルをデプロイするかを知るにはどうすればよいですか?
  3. 私が見逃している優れた最新のチュートリアルはありますか?
  4. 既存のスクリプトは最新ですか? たとえば、1.7 ビルド チュートリアルで説明されている代わりにmobile-all.profile.js使用するのはなぜですか?dependencies=profile=
4

1 に答える 1

8

この場合、どの CSS ファイルを展開しますか?

ページが特定のモジュールを使用し、独自の css-rules がある場合は、それらを含めます。

これは方法ではありませんが、 dojo.css (ベース、リセット)、dijit.css (ベース、レイアウトなど)、nihilo.css (サンプル テーマ)、および android.css (サンプル テーマ) から始めると、良い基盤になります。

  • テーマを使用する場合は、「ベース名」を含めます。例: dojox/mobile/themes/iphone/iphone.css
  • たとえば、iphone.css が使用する一部のエキゾチックなウィジェットを「@import」しない場合は、ウィジェット自体によって配信される css を含めます (例: dojox/widget/ColorPicker/ColorPicker.css)。各ウィジェットのドキュメントは _should not make this.

一般に、CSS ファイルを含め、どのファイルをデプロイするかを知るにはどうすればよいですか?

  • すべてのファイルをアップロードしても害はありません。ローダーは、cached-build から取得するファイル、そのままにしておくファイル、実行時にダウンロードするファイルを決定します。
  • すべてをデプロイします。'action=release' をビルドすると、すべてのファイルは、dojo (デフォルト、常に)、dijit、dojox、および追加したパッケージで定義されたプレフィックス内で縮小されます。
  • ビルドの結果、最適化されたツールキット ツリーが生成され、すべてをデプロイするか、条件付きインクルード (たとえば、Toggler.js、または acme.js セレクター インクルードなど) が欠落している状況に直面する可能性があります。

私が見逃している優れた最新のチュートリアルはありますか?

「thumbrule」により、1.6+ ドキュメントはすべて安定していますが、ほとんど同じことが言えます。プロファイルを開始すると、少し試行錯誤することがあります (スクリプト ファイルを inline-html に含める順序が最も重要です)。customBase:true が必要かどうかを考えてみてください。

バージョン 1.6 ~ 1.7 およびバージョン 1.8については、これを必ず確認してください。

既存のスクリプトは最新ですか? たとえば、mobile-all.profile.js は、1.7 ビルド チュートリアルで説明されている profile= ではなく、dependencies= を使用するのはなぜですか?

既存のものをすぐに使用できます。ただし、ビルダーは変更されており、議論の多い 2.0 リリースに反対しています。今のところ、通常のスキームだけでなく、新しいスキームも許可されています。しかし、実際には変数名は foo または bar であり、変数の値のみが使用されます。ファイルは単一のオブジェクトを「返す」必要があります。

私が理解しているように、その理由は、CommonJS Packages/1.0が AMD とビルダー 1.7+ の新しいバイブルだからです。ただし、パッケージ階層が従うのは常に「親指」スキームでしたが、構文は2.0に近づくにつれてますます厳密になる可能性が高くなります。(#dojo @ irc.freenode.org で snover に接続できるかどうかを確認してください)

于 2012-06-29T11:49:00.497 に答える