9

以下の (1.7) カスタム ビルド プロファイルを使用して、リリース フォルダーをビルドしました。

var profile = {
basePath: "..",
action: "release",
cssOptimize: "comments",
mini: true,
optimize: "closure",
layerOptimize: "closure",
stripConsole: "all",
selectorEngine: "acme",
packages:[
    {
        name: "dojo",
        location: "./../../dojo"
    },

    {
        name: "dijit",
        location: "./../../dijit"
    },

    {
        name: "dojox",
        location: "./../../dojox"
    }
],

layers: {
    "dojo/dojo": {
        include: [
                            "dojo/dojo",
                            "dijit/form/Button",
                            "dojox/form/TimeSpinner"
                    ],
        customBase: true,
        boot: true
    }
},

resourceTags: {
    amd: function (filename, mid) {
        return /\.js$/.test(filename);
    }
} };

私の Web アプリケーションでは、2 つのコンポーネントだけを使用しています。1 つは「dijit」パッケージの Button で、もう 1 つは「dojox」の TimeSpinner です。したがって、これら 2 つのコンポーネントを「dojo/dojo.js」ファイルに含めました。期待どおりに動作しています。

しかし、リリース フォルダーには、多数のファイルを含むフォルダー 'dojo'、'dijit'、および 'dojox' が含まれています。

ほとんどのコンポーネントは Web アプリケーションでは使用されていませんが、それらのファイルは release フォルダーにあります。それらはブラウザーに読み込まれませんが (AMD のため)、リリース フォルダーにそのようなファイルを置きたくありません。

私のサブバージョンでは、そのような膨大な数のファイルを維持する必要はありません。

だから、私の質問は以下の通りです:

  1. リリースフォルダから「.uncompressed.js」ファイルを削除するには?
  2. 未使用のコンポーネントのファイル、CSS、テンプレートをリリース フォルダから削除するにはどうすればよいですか?

私を助けてください...

4

2 に答える 2

4

build.shの下部に次の行を追加できます

find . -type f -name '*.uncompressed.js' -print0 | xargs -0 rm -rdf

find . -type f -name '*.consoleStripped.js' -print0 | xargs -0 rm -rdf 
于 2012-06-02T09:33:58.110 に答える
2

dojo ビルド ユーティリティは、ファイルのサブセットを分離するためのものではなく、そのための構成がありません。

ビルダーは圧縮を行い、レガシー モジュールを amd スタイルの宣言にラップし、キャッシュされたモジュールをロードする方法でレイヤーを結合します。

これは、dojo/dojo を作成すると、customBase (これは非常に高度な設定であり、使用には注意が必要です) レイヤー - 依存関係ツリーが構築されることを意味します。依存関係ツリーは、次のようにそれぞれが圧縮されて縫合されたファイルのリストです。

// file: dojo/dojo.js
declare(
  {cache: 
     {
      "moduleDep_1": dojo.cache("moduleDep_1", {}),
      "moduleDep_2": dojo.cache("modu...", .. )
     }, "dojo/dojo", null, {

  dojo/dojo here

});

あなたの訪問者があなたが除外したベース依存関係を持っている場合はどうなりますか?

とにかく、古いビルド ユーティリティには、1.7 ビルド ユーティリティには存在しない機能の dependencyList がありました。これはあなたを「救った」でしょう:)

必要なファイルがレイヤーファイルだけであると 100% 確信している場合は、その 1 つのファイルをウェブホテルにアップロードしてみませんか?

于 2012-05-21T13:33:33.243 に答える