7

縮小されたJavaScriptコードファイルを「縮小」するという不快な作業に悩まされてきました。JSBeautifierを使用すると、結果のファイルの長さは約6000行になります。

通常、変数名とパラメーター名は完全に失われますが、この場合、縮小されたJavaScriptコードファイルが生成された元のファイルの古いバージョンがあります。元のファイルのこの廃止されたバージョンには、ほとんどのコードコメントと変数名が含まれていますが、現在のバージョンの代わりに使用することは絶対にできません。

JavaScriptで特定のパラメータまたは変数のすべてのインスタンスの名前を変更する方法があるかどうか知りたいです。縮小化により名前が1文字に縮小されるため、検索と置換は不可能です。

このファイルには、a機能するパラメーターを指定し、そのパラメーターのすべてのインスタンスの名前を意味的に変更するfoo必要があるツールがありますか?clientNameclientName

残念ながら、私は承認されたソフトウェアのリストを持つ大規模な組織で働いており、当面の間Visual Studio 2010で立ち往生しています(VS 2012はありません)。

更新: @Kos、Gitは使用していませんが、ソース管理を使用しています。問題は、私の組織でもう働いていない開発者が一度ファイルに変更を加え、それを縮小し、縮小版をソース管理にチェックインしただけなので、元のファイルへの変更が失われることです。

4

3 に答える 3

7

私はこの回答に1年遅れていますが、あなたと同様の問題があったので、これを作成しました:https ://github.com/zertosh/beautify-with-words 。UglifyJS2を使用してコードを最小化しますが、音声ワードジェネレーターを使用して変数の名前を変更します。「長めの」変数名を取得するので、検索と置換を行うのは簡単です。これが他の誰かに役立つことを願っています!

于 2014-01-26T03:13:52.503 に答える
2

別の方法があるかもしれません。

コードの最後の縮小されていないバージョンを確認してください。縮小版と比較してください。おそらく、そのほとんどは、同じモジュロ一貫性のある変数の名前変更である必要があります。名前を変更して再マージする必要がある違い。

Diffはこの種の比較を行いません。プログラムをテキストではなくコードとして比較するツールが必要です。SmartDifferencerツールはこれを行います(言語固有のフルパーサーを使用してASTを生成し、次にASTを比較します)。実際には、whitepspacingにもかかわらずプログラムを比較します。SmartDifferencerは名前の変更も処理します。2つのファイルが1つの名前変更を法として同一である場合、SmartDifferencerはそれを通知します。

この作業がどれほどうまくいくかはわかりません。6000行の「一貫して名前が変更された」変数を使用してSmartDifferencerを試したことはありません。

于 2013-02-22T23:07:47.983 に答える
1

ここでライセンスを取得した「TelerikJustCode」というVisualStudio拡張機能には、私が望むことを実行する機能があることがわかりました。

于 2013-02-27T20:09:23.980 に答える