问题标签 [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.
node.js - 获取有关当前 commonjs 实现的信息
是否有检测实现(node.js、rhino 等)的标准方法以及 CommonJS 中该实现的理想版本。
如果没有,人们怎么做才能得到它?
我正在考虑类似于HTTP User-Agent
浏览器世界中的标题。
class - NodeJS 模块与类
对我来说,类与 NodeJS (CommonJS) 模块非常相似。您可以拥有许多,它们可以重复使用,它们可以相互使用,并且它们通常是每个文件一个。
是什么让模块与类如此不同?你使用它们的方式不同,命名空间的区别是显而易见的。除此之外,它们对我来说似乎非常相似,或者我只是在这里没有看到明显的好处。
javascript - 如何使用 modulr 在浏览器和服务器中重用 commonjs 模块?
我正在使用modulr在浏览器中使用 commonjs 模块。目标是能够在服务器环境中重用其中一些模块。
这些“共享”模块需要做这样的事情:
意义:
- 如果 _ 作为全局变量(浏览器环境)存在,则使用它
- 否则加载“下划线”模块(服务器),并改用它
现在,由于 modulr 对所有代码进行静态分析,寻找 require 调用以生成最终的 js 文件,它会导致构建失败。
有没有办法解决这个问题?
(例如,如果 modulr 支持--ignore=<module_list>
参数之类的东西,一切都会运行良好。)
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 的不同之处。
javascript - Node.js 中的 module.exports 与导出
我在 Node.js 模块中找到了以下合同:
我想知道两者之间有什么区别module.exports
以及exports
为什么在这里使用两者。
javascript - Appcelerator Titanium 中面向 OOP 的 CommonJS
在 Appcelerator Titanium Mobile 应用程序中将所有javascript“类”编写为 CommonJS 模块,而不是使用函数/对象表示法来创建新的“类”(或者无论如何在 javascript 中如何调用它们),这是一种好习惯吗?
代替
有什么缺点吗?
javascript - CommonJS 承诺的使用:拒绝与异常
我有一个函数,downloadAsync()
它返回一个 CommonJS 承诺(使用Q)。它可能以两种方式失败:
- 该文件已经可以下载,在这种情况下我们立即知道。
- 下载过程可能会失败,在这种情况下我们会在一段时间后知道。
在情况 (1) 中,由于我在任何异步发生之前就知道,我可以抛出异常。在情况(2)中,我不得不拒绝承诺。
我的问题是,我的 API 是否应该统一并且总是通过拒绝承诺来表示错误?或者我应该为立即确定的无效状态条件抛出异常?再举一个例子,如果用户向我传递了一个无效的参数,那么抛出错误似乎比拒绝承诺更明智。
弄清楚“异常”的承诺拒绝到底是多么的好,也很好;那里的使用是否与异常使用实践一对一地映射,或者我们是否也将其用于非异常故障?
javascript - 如何在浏览器中“要求”CommonJS 模块?
在浏览器中加载 CommonJS 模块作为客户端 JavaScript 代码的最佳方式是什么?
CommonJS模块将它们的功能放在module.exports
命名空间中,并且通常包含require(pathToModule)
在服务器端脚本中。在客户端加载它们不能以相同的方式工作(需要替换require,需要考虑异步等)。
我找到了模块加载器和其他解决方案:Browserify、RequireJS、yabble 等或简单地更改模块的方法。你认为最好的方法是什么,为什么?
javascript - 与支持多个结果和取消的承诺/延迟类似的模式
与promises 模式类似,我正在寻找一种避免使用 addEventListener/etc 方法污染对象的事件模式,我希望能够返回一个对象,该对象可以被取消以及多次“解决”。
例如,我可能会编写一个返回“间隔”对象的方法,如下所示:
这里的主要区别在于,类似于 promise,事件是标准化的,因此我可以在不需要知道事件名称的情况下进行订阅,但与 promise 不同的是,“完成”可以发生多次,甚至可能被取消(这将等同于 removeEventListener)。
我很想知道这对于 Promise 是否合法,例如进度处理程序可用于多个回调,而完整的处理程序从未使用过,但更重要的是,有一个取消订阅 Promise 的概念。
如果不是这种情况,并且承诺是专门针对这种情况的,那么是否有一个标准化的模式来做我所描述的事情?
titanium - 所需模块出错,参数大小必须 >= 0
我正在使用 Appcelerator 开发一个移动应用程序,并包含一些使用 commonJS 的配置功能。
我正在运行的代码如下:
应用程序.js
配置.js
当我尝试运行代码时,出现以下错误:
我做错了什么来包含模块吗?