73

私たちはレガシー Web アプリをリファクタリングしており、その結果、かなりの数の JavaScript コードを "kill" しています。JavaScript のデッド コードを確実に特定するためのツール/手法はありますか?

4

8 に答える 8

11

複雑すぎるものを探すことなく:

于 2010-11-09T18:59:50.090 に答える
8

grepがあります。関数呼び出しを見つけるために使用します。というメソッドがあるとしますdostuff()grep -r "dostuff()" * --colorプロジェクトのルート ディレクトリで使用します。定義以外のものが見つからない限り、安全に消去できます。

ackは、 grepの注目すべき代替手段でもあります。

于 2010-11-09T17:43:48.013 に答える
7

JetBrains の WebStorm IDE は、プロジェクト内のデッドコードと未使用の変数を強調表示できます。

于 2013-08-13T12:57:20.673 に答える
6

コード オプティマイザーをGoogle Closure Compilerとして使用できますが、コードを最小化するためによく使用されます。

function hello(name) {
alert('Hello, ' + name);
}

function test(){
alert('hi');
}

hello('New user');

結果として

alert("Hello, New user");

例えば。

もう 1 つの方法は、Chrome の Developer Tools (または Firebug) を使用してすべての関数呼び出しを確認することです。プロファイルの下で、時間の経過とともにどの関数が呼び出され、どの関数が呼び出されていないかを確認できます。

DT プロファイル

于 2010-11-09T17:47:37.347 に答える
2

これを自動化したい場合は、https://github.com/joelgriffith/navaliaを参照してください。自動化された API が公開されており、これを行うことができます。

const { Chrome } = require('navalia');
const chrome = new Chrome();

chrome.goto('http://joelgriffith.net/', { coverage: true })
  .then(() => chrome.coverage('http://joelgriffith.net/main.bundle.js'))
  .then((stats) => console.log(stats)) // Prints { total: 45913, unused: 5572, 
  percentUnused: 0.12135996340905626 }
  .then(() => chrome.done());

詳細はこちら: https://joelgriffith.github.io/navalia/Chrome/coverage/

于 2017-07-09T02:53:02.580 に答える