2

Require.jsを使用してFoundation4をYeomanで機能させることができました。Require.jsのmain.jsに使用した要点は次のとおりです:https ://gist.github.com/lkbgift/5164200

Foundation 4のindex.htmlは、次のスクリプトを使用してZeptoを呼び出します。

<script>
  document.write('<script src=' +
  ('__proto__' in {} ? 'js/vendor/zepto' : 'js/vendor/jquery') +
  '.js><\/script>')
</script>

require.jsで、次のようにjqueryパスを宣言します。

paths: {
  jquery: '../components/jquery/jquery'
},

zeptoコードを統合する適切な方法は何ですか?

ps:史上最高の複雑なタイトル。

4

2 に答える 2

2

require を設定している main.js 関数で、isModern などと呼ばれる新しい関数を作成します。この関数は、proto評価の結果を返します (bool)。このようなもの:

function isModern() { return ( __proto__ in {} ); }

パス構成で、「jquery」パス構成を「libdom」などに変更します。libdom を次のように構成します。

paths: {
    'libdom': (isModern()) ? 'your path to zepto' : ' your path to jquery'
},

... ... ...

ここで、「jquery」を require({...}); に渡す代わりに、「libdom」を渡します。これは、isModern の結果に応じて Zepto または jQuery になります。

于 2013-04-24T19:14:27.550 に答える
2

require を使用している場合、一貫性のためだけに、すべてのスクリプトを require でロードすることはおそらく理にかなっていると思います。

あなたが投稿したFoundation 4コードは、protoプロパティをサポートするブラウザにはZeptoをロードし、他のブラウザにはjQueryをロードします(このページによると、本質的にIEのみ)。

Zepto をすべての人に公開しても構わない場合 (IE をサポートする必要はないかもしれません)、require config から投稿したコードを更新して、jQuery ではなく Zepto を指すようにすることができます。または、jQuery を全員にプッシュすることもできます。簡単に言えば、Zepto を調べたところ、jQuery で多くの機能を提供しているようには見えませんでした (パフォーマンス テストはこちらを参照)。

require 構成で Foundation 4 ロジックを保持したい場合は、この require.js github issues ページに、条件付きでファイルをロードする方法を示す例があります。

于 2013-03-15T00:01:39.667 に答える