问题标签 [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 - CommonJS - 如何将 jquery 和 jquery-plugin 组合到 $ 命名空间中
我正在尝试做的是调整我的 jQuery 插件以在 Node.js 上与 jQuery 一起使用。
据我了解,CommonJS 最基本的形式需要将库包装在闭包中,并且该闭包应作为“导出”参数的参数提供。这样,代码就整齐地包含在自己的命名空间中(通过命名变量),并且不会污染全局命名空间。
jQuery 本身应该属于 '$' 命名空间。
翼:
但我的插件也应该适合“$”命名空间。
插件代码:
前任:
要在浏览器中工作,所有内容都设置为可从“$”命名空间调用,即使我的模块设置为“$”的子命名空间(即“$.csv”)。
是否有一种标准方法可以在单个命名空间上执行多个要求?如果没有,是否有可行的替代方案(例如对插件代码进行浅拷贝)?
注意:匿名函数包装器遵循标准 jquery 指南。
注意:此修复将应用于jquery-csv插件。
node.js - 用于漂亮打印 HTML 的模块?
我正在处理一个 grunt 构建文件,它会点击一个 URL 并将输出写入静态 HTML 文件。我点击的网址已压缩 HTML,我想在写入静态文件之前将其打印出来。有没有什么好的模块可以做到这一点?我环顾四周,似乎 Max Ogden 的 html prettyprinter 是我最接近的选择(https://github.com/maxogden/commonjs-html-prettyprinter)。也许如果我将它与 grunt-shell 任务或其他东西结合起来?真的,我更愿意在 grunt 中只需要一个模块并说 pretty(my-file.html) 然后使用 fs 编写它,但到目前为止这被证明是难以捉摸的。
firefox - Firefox 上跨模块的对象持久性
我开发了一个在 Firefox 的 Addon SDK (v1.10) 上运行的扩展。我现在正在尝试模块化更多存储在后台页面中的代码(默认称为“main.js”)。
问题
有没有办法创建一个未冻结的 SDK 模块?我需要创建一个包含数据的模块,该数据应该保留在自身中,并且当该模块“required()”(加载)到另一个模块时可以从其他模块访问。
到目前为止,我通过使用 Firefox 的首选项或本地存储来跨模块保存我需要的对象的状态来实现这一点。但是,我觉得这种方法是一种“hack”方法,应该有更好的方法。
javascript - Javascript 客户端/服务器模块约定
是否有编写可在客户端和服务器上使用的 Javascript 中间件库的约定?
假设我们有一个数据抽象层,我们称之为JEFRi。JEFRi 运行时需要在客户端和服务器上运行相同,以便使用 DAL 的应用程序的所有部分都可以引用相同的实现、API 等。JEFRi 具有依赖项(特别是下划线),并且具有依赖于的子模块它(Mongo 存储、LocalStore 存储)。
可用于在浏览器和节点之间实现最简单的代码共享的最直接模式是什么?
它应该:
- 可以使用 NPM 安装在服务器上
- 可以使用 CommonJS
require()
调用在服务器中加载 - 可以使用以下之一为浏览器项目安装:ender、bower、npm
- 通过复制文件中没有库依赖项的 .min.js 可以为浏览器项目安装。
- 可以使用标签在页面上加载
<script>
(并在全局范围内注册自身) - 可以使用 AMD 加载到页面上
define()
并require()
调用
任何数量的构建步骤都是可以接受的,例如在必要时调用 r.js。
node.js - node.js 很好的继承方式
这被认为是好的代码,有没有更清洁/更好的方法?所以子类对如何从存储机制中实际获取数据一无所知。只是能够使用这些方法来组合功能。
base.js
child.js
测试.js
javascript - 钛设计建议
在学习 Appcelerator Titanium 时,我正在构建一个以包含 2 个标签的 Window 开头的应用程序。这两个标签 (onclick) 应该打开 2 个不同的窗口(每个都包含选项卡组)。
所以,在我的app.js
我有:
在我的ApplicationWindow
功能中:
第一个问题是:这是一个好的设计吗?是否可以改进?如何?
第二个问题是:有没有办法在过渡结束之前显示我正在打开的页面?目前看来,A.js 和 B.js 中包含的 JS 只有在动画停止时才会执行。
谢谢,欢迎任何帮助,并对新手问题感到抱歉。
[编辑] 这是 Ch4rAss 评论后我当前的代码:
和:
backbone.js - 一个使用 require.js 的 Backbone.js 应用程序依赖于另一个:我如何包含孩子?
我编写了一个使用 require.js 的主干.js 应用程序,并被分解为模型/、集合/等。然后我编写了另一个依赖于第一个应用程序的应用程序(以及其他一些东西。文件的布局如下:
我在需求A中放入什么来要求appA?以下对我来说似乎合乎逻辑,但不起作用。如果我使用 ../../appA,则可以找到 appA,但由于根错误,无法找到 IT 的依赖项。
javascript - 同时支持 CommonJS 和 AMD
有没有办法创建一个支持以下所有模块格式的javascript微库(一个没有依赖关系的库):
- 异步模块定义
- CommonJS
- 将库的导出公开为全局命名空间对象(无加载器)
javascript - coffee -cj 覆盖每个类的 module.exports
我只是无法理解它应该如何工作:据我了解,在 CoffeeScript 中定义类/模块的一种非常常见的方法是module.exports = class MyClass
在文件顶部使用。我也猜想咖啡编译器会促进这种模式。举这个极简主义的例子:
然后编译并加入两者:
结果是 all.js,其中 module.exports 为每个模块重新定义/覆盖:
如果我现在尝试这样做,结果将是一个错误,指出找不到 Foo 模块,这是正确的,因为最后一个模块(此处:Bar)已将 module.exports 重新定义为仅包含它自己。
我想这是一个相当菜鸟的问题,但我似乎无法在任何地方得到一个好的答案。
javascript - 为什么 CommonJS 的 require 函数不是异步的?
在加载 CommonJS 模块时,我们使用require
同步的语句。但是加载模块不涉及从磁盘读取它们并解释它们。那么,在我们提倡非阻塞 I/O 的设置中,为什么require
是同步的呢?
更新:
我已经在客户端中看到并使用过 requireJS,并且可以欣赏它的异步特性。我想知道的是为什么在服务器上做这种事情并不普遍(我知道 requireJS 可以在 Node 中使用,但这不是重点)。
另外我想知道在我的代码中需要一个内联模块是否会使我的代码阻塞,这是否是一种不好的做法,应该避免。