11

こんにちは、

jQuery のようなライブラリは完全にロードされており、スクリプトで使用できない多くの関数が付属しています。私のスクリプトを読んで、私が使用しているすべてのjQuery関数とその依存関係を見つけてから、残りの関数をjQueryライブラリから削除する方法があるかどうか疑問に思っています。これは事実上すべてのライブラリに適用でき、実際には jQuery 固有の質問ではありません。

これをどのように達成できるかについて、あなたの考えを教えてください。コードに新しい関数を追加し、その関数がjQueryに存在しないとしたら、後で頭痛の種になるかもしれません。しかし、私は喜んでそのリスクを冒します。

4

6 に答える 6

3

理由がわからない場合でも、次のことができます。

http://github.com/jquery/jquery/blob/master/Makefileにアクセスします

これは、jQuerylibからのmakefileです。jQueryはいくつかのモジュールに分割され、それらがまとめられています。それらbase filesは依存関係で順序付けられているので、使用していないモジュールをはがす可能性があります...

それがうまくいくかどうかは100%わかりません。自分で試したことはありませんが、試してみてください。

于 2010-08-24T08:29:12.013 に答える
3

クロージャコンパイラを使用できます:

それはあなたが望むことをするようです。

于 2010-08-26T04:21:19.907 に答える
1

JavaScriptが本質的にあまり動的でない場合は、ClosureCompilerを試してみることができます。

すべてのJavaScript(jQuery、プラグイン、その他のライブラリなど)を1か所に集め、高度なコンパイルオプションを使用してgccにフィードします。

これにより、コードが破損する可能性のある未使用の関数がすべて削除されます。テストケースがある場合、またはJSが手動で完全にテストできるほど小さい場合にのみ、これをお勧めします。

コンパイラが行う最適化の種類の簡単な例は次のとおりです。

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

hello();

次のようになります:

alert("Hello, undefined");

それが基本的に起こっているすべてだからです。

于 2010-08-24T08:38:59.213 に答える
1

jQuery は、Prototype や MooTools のようにパッケージ化されたダウンロードを提供しません。また、すべての依存関係を手動で整理する必要があるため、自分でビルドするのはおそらく難しいでしょう。新しい jQuery リリースごとに何度も何度も。

さらに、現在、完全なライブラリの gzip 圧縮サイズは 24kb であり、サイズはそれほど重要ではありません。ライブラリは 1 回だけ読み込まれます。CDN から読み込むと、集中的にキャッシュされるため、低速のモデム接続でも実行できます。

于 2010-08-24T08:20:13.527 に答える
0

これは悪い考えです。

まず、ベースの JavaScript の代替手段を使用できるため、削除したい場合がありますInArrayが、保持している他のメソッドは InArray に依存している可能性があります。

基本的に、jQueries メソッドは相互にタスクを完了します。これは、パッケージ サイズを抑える方法の 1 つです。

あなたが本当にこれをやりたいのなら、私はそうします:

$M = MyjQuery = function(element,context)
{
    this.fn = {}
    this.extend = function(base,new)
    {
        //Extend them here
    }
}

そして一からスタート!

于 2010-08-24T08:24:00.627 に答える
0

jQuery は ajax とエフェクト モジュールを除外したスリムなビルドを提供します: https://jquery.com/download/

補足として、jQuery によるこのページでは、パッケージに含めたいものを正確に選択できますが、UI プロジェクト用です。次のことを示すと便利だと思いました。

https://jqueryui.com/download/

例: ここに画像の説明を入力

于 2021-06-21T07:21:54.653 に答える