2012-02-21 59 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