26

レガシー プロジェクトで JavaScript のクリーンアップ作業を行っており、冗長な JS ライブラリを取り除こうとしています。私はすべての明らかなもの(どこからも参照されていないもの)を実行しました。ただし、(タイルを介して) すべてのページに含まれる JS ファイルが多数あります。

それらが実際に使用されているかどうかを調べるには、それぞれの内容を調べて、それらの各機能を検索する以外にどうすればよいですか? これを行うためのよりスマートで簡単な方法はありますか? ちなみに、これはJavaベースのSpringプロジェクトです。

4

4 に答える 4

27

Chrome 開発ツールの最新の更新プログラムの 1 つに、未使用のコードを確認できる JS および CSS カバレッジ タブが含まれています。

https://developers.google.com/web/updates/2017/04/devtools-release-notes

1) Open the Command Menu.
2) Start typing Coverage and select Show Coverage.
于 2018-01-16T09:09:15.327 に答える
4

このタスクにはスパイを使用することをお勧めします。関数が呼び出されているかどうかをテストするために TDD で使用されるため、呼び出しが実際に発生しているかどうかをアサートできます。

運が良ければ、これらの js ライブラリがコンストラクターまたはその他の方法で初期化されている場合は、これらの init 関数をスパイすることをお勧めします。
そうでない場合は、すべての関数をスパイしたいかもしれませんが、これは特に大きなライブラリがある場合は苦痛です。その場合は、1 つずつ実行することをお勧めします。

過去に、このタスクにJasmineまたはSinon.JSを使用しました。例を次に示します。

it('should be able to login', function () {
  spyOn(authobj, 'isEmpty');  
  authobj.login('abc', 'abc');  
  expect(authobj.isEmpty).toHaveBeenCalled();
});

適切な関数でスパイをセットアップしたら、それらが呼び出されているかどうかを確認するだけで、mixpanel (頭に浮かぶ最初の例) を呼び出して、それについての情報を得ることができます。呼び出されている関数と呼び出されていない関数を確認できます。

于 2013-05-31T10:07:29.927 に答える