草庐IT

openjdk-amd

全部标签

javascript - 在设计 JS 库时,我应该让它兼容 RequireJS/AMD 吗?

如果我正在制作一个通用的JavaScript库,我应该如何处理RequireJS支持?据我所知,使您的代码或多或少地与RequireJS兼容会导致无法在没有RequireJS的情况下使用。那我为什么要这么做?没有Require的人如何使用这个代码?有没有办法在不fork/分支的情况下同时支持这两者?我应该提供shim代码吗?我的理解正确吗? 最佳答案 如果您只处理浏览器(而不是node.js),只需几行代码就可以使库同时支持AMD和非AMD。例如,hereisthefilefromjQuerythatdoesit,其中除了四个都是评

javascript - AMD 模块整形 : How to load only one JS function?

许多JavaScript库都有一个Builder工具,可以让您“塑造”您所依赖的库的哪些功能,无论是在客户端的下载带宽成本方面还是在隔离您实际需要的功能方面。例如,我喜欢sugar.js中的很多东西,但我根本不需要或不想处理片假名和平假名字符集。作为最简单的示例,我希望能够“塑造”sugar.js以仅导出string.isBlank()。是否有可用的工具为我执行此操作?EcmaScript委员会是否正在努力在未来的JavaScript版本中做这样的事情?是否有任何高级语言(如TypeScript和CoffeeScript)为此类“整形”提供隐藏支持?我可以通过monolinker在C#

javascript - 使用 AMD 将 jQuery 和其他第三方库作为模块导入 TypeScript

问题:有没有办法使用AMD支持(通过编译器)将jquery导入TypeScript模块,以便将jquery作为依赖项包含在内?关键是获取import语句,它使模块成为define语句中的依赖项(见下文)。define(["require","exports",'dataservice','jquery','knockout'],function(require,exports,__ds__,$,ko){...})详细信息:我想将jquery(和其他第3方库)作为AMD的TypeScript模块导入。目标是使它们在require列表中显示为依赖项。但是,使TypeScript执行此操作的

javascript - 模块化 JavaScript——除了 CommonJS 和 AMD 之外,还有什么方法可以考虑吗?

我目前正在为我的公司准备评估JavaScript模块化方法。我们正在为我们的项目定义“JavaScript最佳实践”,模块化是核心问题之一。到目前为止,我的研究揭示了两种主要方法:amdcommonjs周围有大量的加载器、插件、库等。除此之外还有goog.provide/goog.require来自GoogleClosureLibrary.是否有进一步的方法可供考虑?我错过了任何重要/相关的规范吗?我们的要求,简要说明:在单独的文件中构建JavaScript代码。在运行时加载相关模块。...无需将每个文件都包含为脚本标记。不必维护JavaScript文件的索引。支持聚合和缩小-能够构建

javascript - AMD 加载程序如何在后台工作?

所以我现在一直在使用require.js,但我意识到我实际上并不知道它在幕后是如何工作的。它说它是一个AMD加载器。我知道CommonJS是同步的,这意味着它会在加载时阻止其他代码的执行。另一方面,AMD是异步的。这是我感到困惑的地方。当我定义一个模块时,它必须加载a、b、c才能执行回调。异步在这里如何工作?它必须首先加载这三个依赖项,这不是同步的吗?这是否意味着AMD异步加载a、b、c然后检查是否加载了这些文件(不关心顺序)然后执行回调?define("name",["a","b","c"],function(a,b,c){}); 最佳答案

javascript - 将非 AMD 兼容的 javascript 模块与 require.js 一起使用?

我正在使用require.js来帮助组织我的基于Backbone.js的应用程序。我正在尝试找出使用AMD与require.js不兼容的第3方javascript库的正确方法有问题的图书馆是backbone-tastypie.js.基本上这个库所做的是monkeypatch一些Backbone的原型(prototype)方法,为TastyPieDjangoREST框架提供更简单的支持。它通过直接操作全局命名空间中的Backbone对象来实现这一点。但是,由于我将Backbone.js用作require.js模块,因此当此库尝试访问它时它不可用。我怎样才能在Backbone范围内导入这个

javascript - 我正在与 requirejs 优化器和非 AMD 模块作斗争

我正在努力使用requirejs优化器。如果我只是将它加载到浏览器中而不进行优化,那么这段代码将起作用。如果我运行优化器,我会得到:ENOENT,nosuchfileordirectory'C:\Users\dev\checkout\src\main\webapp\resources\scripts\json2.js'Inmoduletree:main这是代码requirejs.config({paths:{jquery:"lib/jquery",bootstrap:"lib/bootstrap",modals:"lib/modals",tablesort:"lib/tablesort

javascript - RequireJS 与 Dojo 1.7 AMD

有点抽象的问题,但令我惊讶的是我还没有找到它:现在Dojo已经全部采用AMD1.7,它与RequireJS、Lab、Head等相比如何...编辑:我意识到lab和head不是AMD加载程序。澄清一下:我喜欢Dojo将其核心拆分为小型、简洁、单一用途模块的方式。(我假设这些模块现在可以与任何AMD加载器一起工作,尽管我还没有测试过)这使得dojo.js本身只不过是一个AMD加载器。所以问题是:作为AMD加载器,Dojo是如何叠加的。就如何遵循规范、速度、尺寸、效率等而言。它似乎是一个非常热门的话题中的新生事物,但令人惊讶的是,我对此知之甚少。 最佳答案

javascript - 在 javascript 中使用像 requirejs 或 commonjs 模块这样的 AMD 有什么好处?

我阅读了很多关于AMD解决方案的文章,例如RequireJS或在Javascript中遵循CommonJS风格的模块加载器。假设我有一个分为以下几个部分的应用:依赖于我使用的框架的应用定义依赖于App定义和框架的模型1依赖应用程序定义的模型2、模型1和我的框架我可以将每个部分编写为RequireJS模块或通用JS模块,然后将我的项目拆分为我想要的文件,但是将每个部分编写为模块或将它们拆分为多个文件然后将它们加载到正确的顺序(以避免依赖性问题)可能将所有文件连接成一个大文件以减少HTTP请求(如r.js优化器所做的那样)? 最佳答案

javascript - 允许模块与 AMD/CommonJs 或脚本标签一起工作的包装器?

我刚刚尝试包装我们的一个模块,该模块将通过包含在内在一些样板中标记以允许使用requirejs加载可选的AMD。这很痛苦,我能想到的最好办法是:(function(){varexports,jQuery;if(typeofwindow.define==='function'&&typeofwindow.requirejs==='function'){exports={};define(['jquery'],function(jq){jQuery=jq;returnthisModule();});}else{exports=window;jQuery=window.jQuery;this