4

ビルド プロセス中にプリプロセッサを使用して、javascript ファイルの変数を置き換える方法はありますか。私は grunt、usemin、uglifyjs (yeoman スタックの一部) を使用しています。

現在url、グローバル javascript オブジェクトから参照しています。例えば、

 my.url = {
     book: {
        get : '/my/book/{id},
        new: '/my/book'

     }
 }

私のプログラムでは、urlasmy.url.book.getなどを参照することがあります。意図は

  • 開発中に変更を加えるとリファクタリングが難しくなるため、url 文字列をプログラム全体に広げたくありません。
  • url はサーバー API に基づいて生成される可能性があり、クライアントで複製したくありません。

開発に満足したら、すべての JavaScript ファイルを前処理して、これらすべての参照を実際の URL 文字列に置き換えます。意図は、すべての URL を含む余分なファイルをロードしないようにすることです (ユーザーが URL の一部しか必要としない場合があります)。

javascriptを処理してすべての変数を置き換える、htmlテンプレートパッケージに似たツールはありますか。grunt/yeoman スタックで動作するかどうかを好みます。

4

2 に答える 2

0

@Builder を 試してくださいhttps://github.com/electricimp/Builder

ちょっとした例

config.jsで:

@set apiEndpoint "https://somesite.com/api/v1"

それから:

@include once "config.js"
let url = "@{apiEndpoint}"
于 2016-04-25T09:25:01.893 に答える
0

grunt-replaceでそれを行うことができます。これにより、テキスト ファイル内のあらゆる種類の文字列置換が可能になります。bower.jsonなどのバージョン番号を同期するために使用しpackage.jsonますが、ソース ファイルの値の置換にも使用できることは明らかです。

そうは言っても、あなたの場合、たとえばgrunt-envを使用して、環境変数を使用したより動的なソリューションを間違いなく選択します。

于 2013-12-10T12:46:27.720 に答える