问题标签 [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.

0 投票
1 回答
160 浏览

node.js - 获取有关当前 commonjs 实现的信息

是否有检测实现(node.js、rhino 等)的标准方法以及 CommonJS 中该实现的理想版本。

如果没有,人们怎么做才能得到它?

我正在考虑类似于HTTP User-Agent浏览器世界中的标题。

0 投票
3 回答
20715 浏览

class - NodeJS 模块与类

对我来说,类与 NodeJS (CommonJS) 模块非常相似。您可以拥有许多,它们可以重复使用,它们可以相互使用,并且它们通常是每个文件一个。

是什么让模块与类如此不同?你使用它们的方式不同,命名空间的区别是显而易见的。除此之外,它们对我来说似乎非常相似,或者我只是在这里没有看到明显的好处。

0 投票
1 回答
378 浏览

javascript - 如何使用 modulr 在浏览器和服务器中重用 commonjs 模块?

我正在使用modulr在浏览器中使用 commonjs 模块。目标是能够在服务器环境中重用其中一些模块。

这些“共享”模块需要做这样的事情:

意义:

  • 如果 _ 作为全局变量(浏览器环境)存在,则使用它
  • 否则加载“下划线”模块(服务器),并改用它

现在,由于 modulr 对所有代码进行静态分析,寻找 require 调用以生成最终的 js 文件,它会导致构建失败。

有没有办法解决这个问题?

(例如,如果 modulr 支持--ignore=<module_list>参数之类的东西,一切都会运行良好。)

0 投票
1 回答
377 浏览

javascript - JSGI/Level0/A/Draft2中的scriptName和pathInfo有什么区别?

我正在使用 RingoJS 0.8,并在 ringo/httpserver 实例之上创建了一个基本的 jsgi 应用程序。我试图根据规范了解 jsgi 请求对象中每个键的用途:http ://wiki.commonjs.org/wiki/JSGI/Level0/A/Draft2 ;我了解了大部分键,保存 scriptName 键。

当我运行我的应用程序并打印每个键的值时,scriptName 总是返回一个空字符串,而 pathInfo 返回 URL 的路径名。我试图了解 scriptName 实际应该传达的内容以及它与 pathInfo 的不同之处。

0 投票
24 回答
314136 浏览

javascript - Node.js 中的 module.exports 与导出

我在 Node.js 模块中找到了以下合同:

我想知道两者之间有什么区别module.exports以及exports为什么在这里使用两者。

0 投票
1 回答
1543 浏览

javascript - Appcelerator Titanium 中面向 OOP 的 CommonJS

在 Appcelerator Titanium Mobile 应用程序中将所有javascript“类”编写为 CommonJS 模块,而不是使用函数/对象表示法来创建新的“类”(或者无论如何在 javascript 中如何调用它们),这是一种好习惯吗?

代替

有什么缺点吗?

0 投票
2 回答
922 浏览

javascript - CommonJS 承诺的使用:拒绝与异常

我有一个函数,downloadAsync()它返回一个 CommonJS 承诺(使用Q)。它可能以两种方式失败:

  1. 该文件已经可以下载,在这种情况下我们立即知道。
  2. 下载过程可能会失败,在这种情况下我们会在一段时间后知道。

在情况 (1) 中,由于我在任何异步发生之前就知道,我可以抛出异常。在情况(2)中,我不得不拒绝承诺。

我的问题是,我的 API 是否应该统一并且总是通过拒绝承诺来表示错误?或者我应该为立即确定的无效状态条件抛出异常?再举一个例子,如果用户向我传递了一个无效的参数,那么抛出错误似乎比拒绝承诺更明智。

弄清楚“异常”的承诺拒绝到底是多么的好,也很好;那里的使用是否与异常使用实践一对一地映射,或者我们是否也将其用于非异常故障?

0 投票
6 回答
50839 浏览

javascript - 如何在浏览器中“要求”CommonJS 模块?

在浏览器中加载 CommonJS 模块作为客户端 JavaScript 代码的最佳方式是什么?

CommonJS模块将它们的功能放在module.exports命名空间中,并且通常包含require(pathToModule)在服务器端脚本中。在客户端加载它们不能以相同的方式工作(需要替换require,需要考虑异步等)。

我找到了模块加载器和其他解决方案:Browserify、RequireJS、yabble 等或简单地更改模块的方法。你认为最好的方法是什么,为什么?

0 投票
1 回答
892 浏览

javascript - 与支持多个结果和取消的承诺/延迟类似的模式

promises 模式类似,我正在寻找一种避免使用 addEventListener/etc 方法污染对象的事件模式,我希望能够返回一个对象,该对象可以被取消以及多次“解决”。

例如,我可能会编写一个返回“间隔”对象的方法,如下所示:

这里的主要区别在于,类似于 promise,事件是标准化的,因此我可以在不需要知道事件名称的情况下进行订阅,但与 promise 不同的是,“完成”可以发生多次,甚至可能被取消(这将等同于 removeEventListener)。

我很想知道这对于 Promise 是否合法,例如进度处理程序可用于多个回调,而完整的处理程序从未使用过,但更重要的是,有一个取消订阅 Promise 的概念。

如果不是这种情况,并且承诺是专门针对这种情况的,那么是否有一个标准化的模式来做我所描述的事情?

0 投票
1 回答
395 浏览

titanium - 所需模块出错,参数大小必须 >= 0

我正在使用 Appcelerator 开发一个移动应用程序,并包含一些使用 commonJS 的配置功能。

我正在运行的代码如下:

应用程序.js

配置.js

当我尝试运行代码时,出现以下错误:

我做错了什么来包含模块吗?