问题标签 [commonjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 有状态的单例模块
你能有一个有状态的 Node.js 模块吗?像:
国家会在多次require
通话中幸存下来吗?还是应该为此使用一个简单的全局对象?
javascript - 在 JavaScript 中使用像 requirejs 或 commonjs 模块这样的 AMD 有什么好处?
我已经阅读了很多关于 AMD 解决方案的文章,例如 RequireJS 或在 Javascript 中遵循 CommonJS 样式的模块加载器。
假设我有一个应用程序分为这几个部分:
- 依赖于我使用的框架的应用程序定义
- 依赖 App 定义和框架的模型 1
- 依赖 App 定义的模型 2、模型 1 和我的框架
我可以将每个部分编写为 RequireJS 模块或通用 JS 模块,并将我的项目拆分为我想要的多少个文件,但是将每个部分编写为一个模块或将它们拆分为多个文件然后以正确的顺序加载它们有什么好处(以避免依赖性问题)可能将所有文件连接到一个大文件中以减少 HTTP 请求(如 r.js 优化器所做的那样)?
javascript - 有条件地要求 commonJS AMD 模块中的代码
我正在尝试为 Firefox 和 Chrome 编写跨浏览器扩展。Firefox 使用 commonJS 规范,而 Chrome 只是将所有内容都集中到全局命名空间中,就像网页一样。
为了能够编写可重用的代码,我正在尝试使用 requireJS 在 Chrome 扩展中加载代码,这样我就可以编写 commonJS 模块并让它们在两种环境中工作。
当我需要有条件地需要模块时,我遇到了问题。例如,Firefox 提供对simple-storage
您应该用来访问本地存储的模块的访问。在 chrome 中,我需要使用他们提供的 localStorage API。所以,我一直在尝试这样做:
但是,这似乎不起作用。当我尝试加载 Chrome 扩展程序时,出现以下错误:
有没有更好的方法来要求具有后备功能的模块?
javascript - 最小的 CommonJS 实现
我想CommonJS
在我的一些脚本中使用一些兼容的模块。这些脚本只是为了在我的笔记本电脑上做事:它不在浏览器中,也不在服务器中。我只是操纵mongodb
我在本地使用的一个。
所以我想知道,最好的方法是什么?我只发现了提供 CommonJS 功能和mongo shell 的过时包装器。
我应该对require
系统进行手动编码吗?我应该手动编写解决方法吗?是否已经存在最小加载程序?
当然,您对此事的所有想法都会受到赞赏。
指向实现 CommonJS 其他部分的指针也将不胜感激。
commonjs - CommonJS模块如何创建getter
我正在使用 Titanium,但这个问题与 CommonJS 有关,我正在尝试创建一个模块,但我还需要一个变量的 getter。
我承认我的想法还不是很清楚,这是我第一次使用钛和 commonjs,也许你也可以给我一些阅读。
这是我的代码:
选择器.js
List.js
但是,如果我打印 cat 的值,它是未定义的,而不是 0 ...我错在哪里?
谢谢你!!
javascript - 将需要 CommonJS 功能的 JavaScript 编译为原生 Java
我想知道是否有人尝试过将实现 CommonJS API (require()) 的 JavaScript 文件编译为本机 Java 代码。
我目前正在构建一个网站,它将使用类似于这个的文本编辑器,它是 stackoverflow 开源的(WMD 编辑器的一个端口): http ://code.google.com/p/pagedown/
这个项目附带了一些 JavaScript 文件,这些文件可以清理编辑器的标记语言并将其转换为有效的 HTML。
在玩了一些 Rhino 1.7R4 之后,我设法在运行时加载了 JavaScript 文件/模块,并且能够在何时执行 require 函数。
但是,我宁愿将这些脚本预编译为本机 Java 代码。我已经设法编译了遵循此 Rhino 文档的不使用 CommonJS 功能的单个脚本:
https://developer.mozilla.org/en-US/docs/Rhino/JavaScript_Compiler
但是我不知道编译多个实现 CommonJS 功能的依赖脚本的正确方法,而且 Rhino 本身也没有很好的文档记录。
我们的想法是使用本地 Java 代码进行标记转换和清理,而无需编写/维护两个不同代码库的翻译成本(只需将 JS 转换为 JAVA)。
干杯
javascript - 如何将 Base 的原型分配给 User?
我正在尝试拥有一个具有一些常用方法(保存、更新等)的Base对象。我尝试过使用Object.create(Base)
,但无法弄清楚如何使用它module.exports
。
我如何将 Base 指定为 User 的原型?还是有更好的方法来实现我的目标?
模型/user.js
模型/base.js
node.js - commonjs 的 jsdoc 需要
我将 webstorm ide 与 nodejs 一起使用。当我创建模块并需要它们时,我没有代码完成。
例如:
测试.js
main.js
我还没有在 jsdoc 3 文档中找到任何关于模块用法的信息。:S
typescript - 打字稿中的 module.exports
有人知道如何做一个module.exports吗?
我尝试了一些不同的方法
这将编译为
但我真正想要的是:
这样我就可以像这样使用它:
并不是
打字稿可以做到这一点吗?
javascript - 为什么我需要 JavaScript 模块加载,所有这些加载器之间有什么区别?
问题一:
为什么我需要在网页中异步加载我的 JavaScript 文件?我可以在服务器端看到它的基本原理,但是如果我知道我需要在客户端加载的所有文件,为什么我不应该将所有源文件连接到 1 个文件中并在页面加载时加载呢?第一个初始页面加载是否如此重要,以至于将来的操作可能会由于检索每个 JS 文件的延迟而减慢?
问题 2:
假设问题1的答案是我需要单独加载JS文件:
AMD 异步加载每个 JS 文件,CommonJS 同步加载。服务器端加载需要 CJS(如果我没记错的话,这就是 Node.js 的工作方式)。AMD 似乎更适合客户。因此,在客户端使用 CJS 的唯一原因是与服务器共享代码。
有没有办法让 AMD 和 CJS 玩得很好,以便客户端 JS 文件可以异步加载但仍然具有 CJS 语法?
(require.js 到底是做什么的?我一生都无法在他们网站上的字里行间阅读。)