1

私は最初の大きな JavaScript プロジェクトを始めています! 展開について質問がありました。Web サービスへの ajax 呼び出しを使用しています。これを設定するために、次のようなコードを含む静的 JS ファイルがあります。

var API_URL_ROOT = 'http://api.example.com/';

var IN_DEVELOPMENT = True;
if (IN_DEVELOPMENT) {
  API_URL_ROOT = 'http://localhost.com/api';
}

$.get(API_URL_ROOT)

python/fabric を使用してデプロイしています。 JavaScriptファイルの静的分析/操作を処理するための事前構築済みツールがあるかどうか疑問に思っていました。、今はコミッターにトグルを任せます

次のような展開プロセスを計画していました。

  1. deploy コマンドを発行する
  2. すべての値を本番環境の値に設定することにより、JS を「ビルド」します (つまりIN_DEVELOPMENT = False) 。
  3. JS を縮小する
  4. コードを運用サーバーにデプロイする

sed などを使用してIN_DEVELPMENT = False交換することを考えていました。私はいくつかの一般的な縮小ツールを見てきましたが、この種の機能を提供するツールはないようです。

これは、アプリケーションにとって非常に一般的な問題であると思います。通常どのように扱われますか?どんな助けでも大歓迎です。ありがとうございました

最近、mozilla の hackernewsに関する記事を読みました。

Mozilla Persona コード ベースでは、テスト API の一部として余分な関数を明確にマークして、テストが難しいプライベート関数をパブリック インターフェイスに公開することがよくあります。他の開発者はこれらのプライベート関数を呼び出すことができますが、作成者の意図は明らかです。

...
publicFunction: function() {
  return "publicFunction can be invoked externally but " 
             + privateFunction();
}

// BEGIN TESTING API
,
privateFunction: privateFunction
// END TESTING API
};

// privateFunction is now accessible via the TESTING API
function privateFunction() {
...

// BEGIN TESTING API と //END TESTING API 疑似マーカーの間のコードは、ビルド プロセス中にプロダクション用に削除できます。

したがって、他の企業は間違いなくこれを行っています。このコードを削除できる JS ビルド プロセスを容易にする既製のツールはありますか? 私は github で彼らのプロジェクトをいくつか見ましたが、何も表示されませんでした。ありがとうございました

4

1 に答える 1

3

道場を使用しています

また、dojoでは、ビルドjsで不要なコードの部分を除外するために、ビルドバージョンのjsに条件付き除外を使用できます。お役に立てれば。

例えば:

var API_URL_ROOT = 'http://api.example.com/';

//>>excludeStart("dev",!pragmas.dev);
    var IN_DEVELOPMENT = True;
//>>excludeEnd("dev");

if (IN_DEVELOPMENT) {
  API_URL_ROOT = 'http://localhost.com/api';
}

$.get(API_URL_ROOT)
于 2013-02-06T17:45:26.867 に答える