Questions tagged «requirejs»

RequireJS是一个JavaScript文件和模块加载器。它针对浏览器内使用进行了优化,但可以在其他JavaScript环境中使用,例如Rhino和Node。如果您使用的是Node.js随附的require调用,那么您就不会使用RequireJS。在这种情况下,请勿使用此标签。请改用require标签。

5
CommonJS,AMD和RequireJS之间的关系?
即使阅读了很多,我仍然对CommonJS,AMD和RequireJS感到非常困惑。 我知道CommonJS(以前称为ServerJS)是用于在浏览器之外使用该语言时定义一些JavaScript规范(即模块)的组。CommonJS模块规范具有一些实现,例如Node.js或RingoJS,对吗? CommonJS,异步模块定义(AMD)和RequireJS之间是什么关系? 是RequireJS的的实现CommonJS的模块定义?如果是,那么AMD是什么?

14
将Require.js与Angular.js一起使用是否有意义?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 我是Angular.js的新手,试图了解它与Backbone.js的区别...我们以前在使用Backbone时使用Require.js管理我们的软件包依赖项。用Angular.js做同样的事情有意义吗?


12
防止RequireJS缓存所需的脚本
RequireJS似乎在内部做了一些缓存所需的javascript文件的操作。如果对所需文件之一进行更改,则必须重命名该文件才能应用更改。 将版本号作为查询字符串参数附加到文件名末尾的常见技巧不适用于requirejs <script src="jsfile.js?v2"></script> 我正在寻找的是一种防止对RequireJS必需脚本进行内部缓存的方法,而无需在每次更新脚本文件时都对其重命名。 跨平台解决方案: 现在,我用于urlArgs: "bust=" + (new Date()).getTime()开发和urlArgs: "bust=v2"生产期间的自动缓存清除,在部署更新的必需脚本后,我增加了硬编码版本num。 注意: @Dustin Getz在最近的回答中提到,当像这样不断刷新Javascript文件时,Chrome开发者工具会在调试过程中删除断点。一种解决方法是debugger;在大多数Javascript调试器中编写代码以触发断点。 服务器特定的解决方案: 有关可能更适合您的服务器环境(例如Node或Apache)的特定解决方案,请参阅以下一些答案。

2
从Gulp任务中排除文件/目录
我有一个gulp rjs任务,它将我的所有自定义.JS文件(所有非供应商库)串联并丑化。 我想做的是从此任务中排除一些文件/目录(控制器和指令)。 这是我的树: - application - resources - js main.js - vendor - jquery - modernzr - angular - controllers - controller1 - controller2 - controller3 - directives - directives1 - directives2 - directives3 - widgets - widget1 - widget2 - widget3 - widget4 - modules - modules1 - …

6
使用RequireJS加载主干和下划线
我正在尝试使用RequireJS加载Backbone和Underscore(以及jQuery)。使用最新版本的Backbone和Underscore,似乎有些棘手。例如,Underscore自动将自身注册为模块,但是Backbone假定Underscore在全球范围内可用。我还要注意,Backbone似乎并没有将自己注册为模块,这使其与其他库有些不一致。这是我能想到的最好的main.js: require( { paths: { 'backbone': 'libs/backbone/backbone-require', 'templates': '../templates' } }, [ // jQuery registers itself as a module. 'http://cdnjs.cloudflare.com/ajax/libs/jquery/1.7/jquery.min.js', // Underscore registers itself as a module. 'http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.2.1/underscore-min.js' ], function() { // These nested require() calls are just due to how Backbone is built. Underscore basically says if require() // …

2
JavaScript中的“定义”是什么(除了显而易见的)?
我在文档中搜索了很多内容,但是在任何地方都找不到。 我正在使用Aloha,并想使用他们的侧边栏原型来创建自己的附加到其他插件功能的新侧边栏。 他们的sidebar.js以此开始,但是我一生都找不到能解释其含义的文档。 define( [ 'aloha/core', 'aloha/jquery', 'aloha/selection' ], function (Aloha, jQuery, Selection, Plugin) { 它接着在包装定义一组函数,所以vars有的proptotypes-我可以只是身边让我的头...... 那是什么意思,或者在哪里可以找到解释?

4
Require.js和仅在DOM中创建<script>元素之间有什么区别?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 改善这个问题 使用Require.JS和仅&lt;script&gt;在DOM中创建元素之间有什么区别? 我对Require.JS的理解是,它提供了加载依赖项的能力,但是这不能简单地通过创建一个&lt;script&gt;加载必要的外部JS文件的元素来完成吗? 例如,假设我有功能doStuff(),需要功能needMe()。doStuff()在外部文件中do_stuff.js,而needMe()在外部文件中need_me.js。 使用Require.JS方法: define(['need_me'],function(){ function doStuff(){ //do some stuff needMe(); //do some more stuff } }); 只需创建一个脚本元素即可: function doStuff(){ var scriptElement = document.createElement('script'); scriptElement.src = 'need_me.js'; scriptElement.type = 'text/javascript'; document.getElementsByTagName('head')[0].appendChild(scriptElement); //do some stuff needMe(); //do some more stuff } 这两个工作。但是,第二个版本不需要我加载所有Require.js库。我真的没有看到任何功能上的区别...

7
不匹配的匿名define()模块
首次浏览Web应用程序时(通常是在禁用缓存的浏览器中),我遇到此错误。 错误:匿名define()模块不匹配:函数(需要){ HTML: &lt;html&gt; . . . &lt;script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"&gt;&lt;/script&gt; &lt;script&gt; var require = { urlArgs: "v=0.4.1.32" }; &lt;/script&gt; &lt;script data-main="assets/js/main" src="assets/js/libs/require.js"&gt;&lt;/script&gt; &lt;script src="assets/js/ace/ace.js?v=0.4.1.32"&gt;&lt;/script&gt; &lt;/body&gt; &lt;/html&gt; JS: $(function () { define(function (require) { // do something }); }); 谁能确切知道此错误的含义以及发生的原因? 源文件,在github问题页面上对此文件进行了简短讨论

7
如何在RequireJS中模拟依赖关系以进行单元测试?
我有一个要测试的AMD模块,但是我想模拟其依赖关系,而不是加载实际的依赖关系。我正在使用requirejs,模块的代码如下所示: define(['hurp', 'durp'], function(Hurp, Durp) { return { foo: function () { console.log(Hurp.beans) }, bar: function () { console.log(Durp.beans) } } } 我该如何模拟hurp并durp有效地进行单元测试?


4
为什么使用Object.prototype.hasOwnProperty.call(myObj,prop)代替myObj.hasOwnProperty(prop)?
如果我理解正确,那么Javascript中的每个对象都是从Object原型继承的,这意味着Javascript中的每个对象都可以通过其原型链访问hasOwnProperty函数。 在阅读require.js的源代码时,我偶然发现了该函数: function hasProp(obj, prop) { return hasOwn.call(obj, prop); } hasOwn是对的引用Object.prototype.hasOwnProperty。将此功能编写为 function hasProp(obj, prop) { return obj.hasOwnProperty(prop); } 既然如此,我们为什么要完全定义此功能?是否只是为了获得(略微)提高性能而使用快捷方式和对属性访问进行本地缓存的问题,还是我缺少在没有此方法的对象上使用hasOwnProperty的情况?

8
组织jQuery / JavaScript代码的最佳方法(2013)[关闭]
在这里很难说出要问什么。这个问题是模棱两可的,模糊的,不完整的,过于宽泛的或修辞性的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 7年前关闭。 问题 这个答案以前已经被回答过,但是它是旧的并且不是最新的。我在一个文件中有2000行以上的代码,众所周知,这是一种不好的做法,尤其是当我浏览代码或添加新功能时。无论现在还是将来,我都希望更好地组织代码。 我应该提到的是,我正在构建一个工具(不是简单的网站),该工具在全局范围内具有许多按钮,UI元素,拖放,动作侦听器/处理程序和功能,其中多个侦听器可能使用同一功能。 范例程式码 $('#button1').on('click', function(e){ // Determined action. update_html(); }); ... // Around 75 more of this function update_html(){ .... } ... 更多示例代码 结论 我确实需要组织此代码以使其最佳使用,而不是重复自己,并且能够添加新功能并更新旧功能。我将自己解决这个问题。有些选择器可能是100行代码,另一些则是1行。我看了一眼require.js,发现它有些重复,实际上编写了比所需更多的代码。我愿意接受任何符合此条件的解决方案,并且链接到资源/示例始终是一个加号。 谢谢。

5
Requirejs domReady插件与Jquery $ {document).ready()?
我正在使用RequireJS,需要在DOM上初始化一些东西。现在,RequireJS提供了domReady插件,但是我们已经有了jQuery的$(document).ready(),因为我需要jQuery,所以可以使用它。 所以我有两种选择: 使用domReady插件: require(['domReady'], function (domReady) { domReady(function () { // Do my stuff here... }); }); 用途$(document).ready(): $(document).ready(function() { // Do my stuff here... }); 我应该选择哪一个,为什么? 这两个选项似乎都能按预期工作。我对jQuery不满意,因为RequireJS在发挥作用。也就是说,由于RequireJS将动态添加脚本,因此我担心在所有动态请求的脚本加载之前可能已准备好DOM。而RequireJS只会domReady在我已经需要jQuery时增加其他JS的负担。 问题 domReady当我们可以使用jQuery时,为什么RequireJS提供一个插件$(document).ready();?我看不到包含另一个依赖项的任何优势。 如果只是为了满足需要,那为什么不为跨浏览器的AJAX提供一个呢? 据我所知,domReady在文档准备好后,不会获取或执行需要的模块,您也可以执行同样的操作,需要jQuery: require(['jQuery'], function ($) { $(document).ready(function () { // Do my stuff here... }); }); 更明确地说明我的问题:require domReady或之间有什么区别jQuery?

2
如何使用不含.d.ts的打字稿中的外部非打字稿库?
我已经在我的.html文件中定义了这些: &lt;script type="text/javascript" src="bower_components/tree.js/tree.min.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="bower_components/q/q.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="test.js"&gt;&lt;/script&gt; 然后在test.js中: var myTree = Tree.tree({}) 但是打字稿错误说:“找不到名称'树'” 我也尝试使用test.js文件进行编译--module amd并将其放置import Tree = require("model/tree");在顶部,但它再次出错:Cannot find external module 'model/tree'.但是显然它应该是有效的导入,请参见此处定义的位置:https : //github.com/marmelab/tree .js / blob / master / src / main.js 我不是想写.d.ts文件为每一个外部JavaScript文件,我想使用,是严重打字稿什么要我做什么?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.