2012-02-21 50 views
9

我使用RequireJs來構建我的JavaScript代碼。另外,我使用了很多CSS3,並使用「Modernizr w/YepNope」+ x數量的css3 polyfills。我應該在同一頁面使用Modernizrjs + YepNopejs + Requirejs嗎?

我明白「Modernizr w/YepNope」和RequireJs都是資源加載器。既然它們都是資源加載器,那麼在同一個項目中使用它們是不是一個好主意?

所以,基本上我問,是不是一個壞主意,使用方法:

  • Require.js
  • Modernizr.js W/YepNope.js

在同一頁?

+3

一年後回到這個問題,我可以說我不再使用requirejs生產版本了。我將requirejs模塊編譯爲1個文件,並使用almond.js作爲amd模塊的輕量級替代品。 – 2013-02-19 02:58:13

回答

4

只要你不通過YepNope加載RequireJS模塊,它是確定同時使用。 http://requirejs.org/docs/errors.html#mismatch

而且因爲你RequireJS之外加載的東西,即一個API填充工具,只有這樣,你的模塊可以使用這些polyfills將是使complete()內的初始require()電話:否則,你可以根據RequireJS DOC遇到此問題YepNope的回調。但恕我直言,它有點笨拙......

+0

這種回答我的問題。我只是想知道是否它的超負荷在1頁中有2個資源加載器..我應該將yepnope與requirejs結合,並刪除modernizr? – 2012-03-02 18:48:16

+0

我認爲你的意思是削減yepnope,保持Modernizr的容量檢測並使用RequireJS進行腳本加載。 – sylvain 2012-03-05 13:04:37

+0

Cont'd ....我沒有看到使用這兩個問題的任何問題,即使性能明智,因爲他們都是異步的。不過,如果你不需要RequireJS依賴解決方案,如果我是你,我會放棄它並保持YepNope – sylvain 2012-03-05 13:12:10

3

摘要:Respond.js(與jQuery Mobile相媲美)基於css3媒體查詢,所以如果你需要polyfills,你可能不需要'資源加載器'。

我不能說YepNopejs,但由於respond.js在Modernizer中列出,它似乎是多餘的。

Modernizer(如果使用的話)應該確定是否加載了respond.js。

Modernizer將基於特徵檢測有條件地加載腳本,包括respond.js,客戶端。 支持的腳本(不包括目前YepNope)在

https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills

+0

Respond.js是Modernizr將使用的一個polyfill。而且我認爲YepNope包含在Modernizr中。所以,我的問題不是特別關注polyfill,但是可以將modernizr和requirejs結合在一起使用。 – 2012-02-27 22:49:13

+0

我不明白爲什麼不 - 最糟糕的情況是require.js被加載到內存中兩次。 – Cymbals 2012-02-28 14:13:08

+3

Cy:您是否將RequireJS與respond.js(模塊加載器/依賴關係管理器與媒體查詢填充)混淆? – WebSeed 2012-04-06 19:49:06